Voozanoo 4 CLI regroupe plusieurs utilitaires
Configuration
Dans le cas d’un lancement de la commande depuis un poste de développeur, il faut fournir au fichier {app_path}/resource/cron/voo4_cli.php les variables correspondants à votre environnement de développement. Pour cela, il faut ajouter au dossier {app_path}/configs/ un fichier env.php qui contiendra ceci :
Exemple :
putenv( "VOO4_APPBOOTSTRAPPER=C:\\wamp\\www\\libs\\VOOZANOO4\\" . $sVersionVoo4 . "\\src\\tools\\Voo4_AppBootstrapper.php" );
putenv( "PATH_VOO4_CORE=C:\\wamp\\www\\libs\\VOOZANOO4\\%s\\src" );
putenv( "PATH_VOO4_EXTLIB=C:\\wamp\\www\\libs\\VOOZANOO4\\%s\\libs" );
putenv( "PATH_FARM=/var/www/workdata" );
putenv( "PATH_ZF=C:\\wamp\\www\\libs\\ZendFramework" );
putenv( "APPLICATION_ENV=dev_kgr" );
Bien entendu, les chemins vers les différents fichiers et répertoires doivent correspondre à votre propre environnement (attention à donner les chemins existants au sein du container de l’application pour les environnements docker) et la variable APPLICATION_ENV au nom de votre section dans le fichier application.ini.
Méthode
Le script voo4_cli.php permet d’executer la plupart des méthodes public de la classe Voo4CliApi.
Pour exécuter une de ces méthodes, il faudra respecter la syntaxe suivante :
php voo4_cli.php mtd=METHOD_NAME
Le passage de paramètres se fera de la manière suivante :
php voo4_cli.php param1=value1 param2=value2 param3="value3 with spaces"
createDummyUsers
La méthode createDummyUsers
permet de générer des utilisateurs fictifs en grand nombre.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Le projet dans lequel créer les utilisateurs | Chaîne de caractères | Il y a un unique projet qui porte ce nom dans l’application | Oui |
nb_user | Nombre d’utilisateur à créer | Nombre entier | 1 < nb_user < 20001 | Oui |
role | Rôle des utilisateurs à créer | Chaîne de caractères | Il y a un unique rôle qui porte ce nom dans le projet | Non |
axis | Axe du groupe des utilisateurs à créer | Chaîne de caractères | Si renseigné : il y a un unique axe qui porte ce nom dans le projet Sinon : il y a un unique axe dans le projet |
Non |
group | Groupe des utilisateurs à créer | Chaîne de caractères | Il y a un unique groupe qui porte ce nom dans l’axe choisi | Non |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=createDummyUsers nb_user=100 project=anses
php voo4_cli.php mtd=createDummyUsers nb_user=30 project=doccu role=radiologue
php voo4_cli.php mtd=createDummyUsers nb_user=10 project=sante_publique role=patient group=paris
deleteProject
La méthode deleteProject
permet de supprimer un projet d’une application Voozaoo 4.
Suppression de toutes les tables liées aux varsets du projet.
Suppression de toutes les tables “système” :
- {pj}_pj_group_mode
- {pj}_pj_group_link
- {pj}_pj_group
- {pj}_pj_axis
- {pj}_pj_role
- {pj}_pj_varset
Suppression des mentions du projet dans les tables :
- sys_editor_publication
- sys_editor
- sys_project
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Le projet à supprimer | Chaîne de caractères | Il y a un unique projet qui porte ce nom dans l’application | Oui |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=deleteProject project=project_test
execDataquery
La méthode execDataquery
permet l’exécution d’un dataquery selon les variables d’environnements passées en paramètre et de connaître le temps d’exécution de celle-ci.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Le projet dans lequel executer le dataquery | Chaîne de caractères | Il y a un unique projet qui porte ce nom dans l’application | Oui |
dataquery | L’id ou le nom d’une ressource de type dataquery ou export | Chaîne de caractères | Oui | |
print_result | Permet d’afficher le résultat de la requête | Boolean | Non | |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Il est possible de passer des paramètres au dataquery sélectionné. Si le dataquery contient une ou des variable(s), il suffit de lui donner en paramètre comme ceci afin de récupérer les résultats voulus :
php voo4_cli.php mtd=execDataquery project=rythmo dataquery=68 print_result=true prenom=kevin
Exemple
php voo4_cli.php mtd=execDataquery project=rythmo dataquery=68 print_result=true
En cas d’erreur, une erreur SQL est retournée :
exportSqlFromDataqueries
La méthode exportSqlFromDataqueries
permet la récupération des requetes issues des dataqueries d’un projet.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Le projet à auditer | Chaîne de caractères | Il y a un unique projet qui porte ce nom dans l’application | Oui |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
Passer le fichier résultant à un outil comme MySQL Workbench ou DBeaver pour éventuellement améliorer la lisibilité des requêtes générées en allant sur Edit > Format > choisissez Beautiful Query.
php voo4_cli.php mtd=exportSqlFromDataqueries project=rythmo > audit.queries.sql
Le fichier audit.queries.sql contiendra toutes les requetes issues des dataqueries du projet.
Il est possible de récupérer ces requetes dans l’entrée standard, dans ce cas il suffit de ne pas spécifier de fichier sur lequel écrire :
php voo4_cli.php mtd=exportSqlFromDataqueries project=rythmo
Exemple de résultat :
purgeSysScriptAndSysScriptError
La méthode purgeSysScriptAndSysScriptError
permet la suppression des entrées les plus anciennes dans la table sys_script et les entrées qui y sont associées dans
la table sys_script_error.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
row_older_than | Âge minimal des enregistrements à supprimer (en mois) | Nombre entier | row_older_than > 3 | Oui |
chunk_size | Taille des groupes pour les suppressions | Nombre entier | Oui | |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=purgeSysScriptAndSysScriptError row_older_than=12 chunk_size=1000
Exemple de résultat :
8192 sys_script rows removed
10231 sys_script_error rows removed
Cannot delete entries younger than 3 months
0 sys_script rows removed
0 sys_script_error rows removed
purgePjToken
La méthode purgePjToken
permet la suppression des entrées les plus anciennes dans la table {project}_pj_token .
Attention si l’application.ini contient une des trois directives ci-dessous, on interdit l’action car les enregistrements de pj_token sont utilisés par Epimob :
- hub.url
- hub.login
- hub.password
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | projet existant dans l’application | Oui |
row_older_than | Âge minimal des enregistrements à supprimer (en mois) | Nombre entier | row_older_than > 3 | Oui |
chunk_size | Taille des groupes pour les suppressions | Nombre entier | Oui | |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=purgePjToken project=Epifiles row_older_than=12 chunk_size=1000
Exemple de résultat :
8192 rows removed
Cannot delete entries younger than 3 months
purgeOAuth
La méthode purgeOAuth
permet la suppression des entrées les plus anciennes dans les tables _{project}_oauthonces_data et _{project}_oauthtokens_data.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | projet existant dans l’application | Oui |
row_older_than | Âge minimal des enregistrements à supprimer (en mois) | Nombre entier | row_older_than > 3 | Oui |
chunk_size | Taille des groupes pour les suppressions | Nombre entier | Oui | |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=purgeOAuth project=Epifiles row_older_than=12 chunk_size=1000
Exemple de résultat :
8192 rows removed
Cannot delete entries younger than 3 months
purgeWSConnectionEvt
La méthode purgeWSConnectionEvt
permet la suppression des entrées les plus anciennes dans la table {project}_evtlog_data qui sont de type (evt_name) VZN_EVT_CONNEXION_WS.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | projet existant dans l’application | Oui |
row_older_than | Âge minimal des enregistrements à supprimer (en mois) | Nombre entier | row_older_than > 1 | Oui |
chunk_size | Taille des groupes pour les suppressions | Nombre entier | Oui | |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=purgeWSConnectionEvt project=Epifiles row_older_than=12 chunk_size=1000
Exemple de résultat :
8192 rows removed
Cannot delete entries younger than 1 month
updateSysDico
La méthode updateSysDico
permet de mettre à jour les dictionnaires systèmes (table sys_dico_data
) inclus dans le dossier src/resources/xml_resources/dico
du noyau Voozanoo4.
Mettre à jour signifie :
- ajouter les entrées de dictionnaire manquantes
- mettre à jour les entrées de dictionnaire existantes si besoin (le script se base sur la colonne
code
pour identifier une entrée) - ajouter les dictionnaires manquants (fonctionnalité disponible d’ici peu)
Cette méthode ne supprime rien.
Paramètre
Cette méthode ne prend aucun paramètre.
Exemple
php voo4_cli.php mtd=updateSysDico
changeAuthMode
La méthode changeAuthMode
permet de modifier le mode de connexion du projet (paramétrage de projet auth_mode dans la ressource XML du projet). Elle a été créée pour faciliter la modification de ce paramètre lorsqu’une application est en erreur (lorsque la relation provider/consumera comporte des erreurs par exemple).
Si aucun développement spécifique n’a été ajouté à l’authentification, la valeur maximale de auth_mode est de 31.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | projet existant dans l’application | Oui |
auth_mode | Chiffre correspondant à la somme des modes de connexion désirés. La valeur des modes de connexion proposés par le noyau sont les suivantes : - login/pwd : 1 - CPS : 2 - CPS choice : 4 - OAuth : 8 - OTP : 16 |
Nombre entier | entier compris entre 1 et (2^[nombre de modes de connexion existants dans la table sys-dico_data] - 1) inclus | Oui |
env | Nom de la section concernée | Chaîne de caractères | Section déclarée dans le application.ini | Obligatoire pour les applications multisections |
Exemple
php voo4_cli.php mtd=changeAuthMode project=MyProject auth_mode=1
scanFormsForDuplicateEditorId
La méthode scanFormsForDuplicateEditorId
recherche les editor_id en doublon dans toutes les ressources xml de type “formulaire” d’un projet.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | projet existant dans l’application | Oui |
Exemple
php voo4_cli.php mtd=scanFormsForDuplicateEditorId project=MyProject
getApplicationMetrics
La méthode getApplicationMetrics
renvoie un JSON contenant des métriques sur l’application. Il est possible de choisir la métrique souhaitée grace à l’argument metric_name
.
Attention : Cette méthode n’est appelable que si voozanoo.cli.metrics.enable = TRUE
dans le fichier .ini
de l’application. C’est le cas par défaut.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
metric_name | Nom de la métrique souhaitée | Chaîne de caractères | Dans la liste suivante : active_users_count , varsets_count , vars_count , records_count , last_updates_count , audittrail_records_count |
Non |
Voici la signification de ces métriques :
active_users_count
: nombre d’utilisateur au statut “actif” par projetvarsets_count
: nombre de varsets par projetvars_count
: nombre de variables par projetrecords_count
: nombre d’enregistrement (tous varsets confondus) par projetlast_updates_count
: nombre d’enregistrement (tous varsets confondus) modifiés au cours des 30 derniers jours par projetaudittrail_records_count
: nombre d’enregistrements dans les varsetsmonitoring
etevtlog
par projet
Exemple 1
php voo4_cli.php mtd=getApplicationMetrics metric_name="varsets_count"
Ceci renvoie un JSON donnant, pour chaque projet de l’application, le nombre de varset au format suivant :
{
"name":"nom_du_projet",
"metrics": [{"name":"varset_count","value":"nombre_de_varsets"}]
}
Exemple 2
php voo4_cli.php mtd=getApplicationMetrics
Sans metric_name
, ceci renvoie un JSON donnant, pour chaque projet de l’application toutes les métriques disponibles au format suivant :
{
"name":"nom_du_projet",
"metrics": [
{"name":"active_users_count","value":"valeur_de_la_metrique"},
{"name":"varset_count","value":"valeur_de_la_metrique"},
{"name":"vars_count","value":"valeur_de_la_metrique"},
{"name":"records_count","value":"valeur_de_la_metrique"},
{"name":"last_updates_count","value":"valeur_de_la_metrique"},
{"name":"audittrail_records_count","value":"valeur_de_la_metrique"},
]
}
tests
La méthode tests
permet de lancer des tests vérifiants la bonne configuration de l’application.ini pour l’environnement
production.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
appli | Booléen (false par défaut) indiquant si les tets que l’on souhaite exécuter son dans le code sqource de l’application | Booléen | Non | |
auto_project | Booléen (false par défaut) permettant d’ajouter temporairement un projet à l’application pour y jouer les test. Le projet sera automatiquement supprimé à la fin des tests. | Booléen | Non | |
path | Permet d’indiquer le chemin du fichier de test (voozanoo4-tests.xml) s’il n’est pas à l’emplacement habituel | Chaîne de caractères | Non | |
project | Nom du projet au sein duquel exécuter les tests (inutile si le paramètre auto_project vaut true ) |
Chaîne de caractères | Non | |
result_dir_path | Chemin du dossier dans lequel sera créé le fichier result.json (résultats des tests) | Chaîne de caractères | Dossier existant dans le filesystem avec les bonnes permissions d’écriture | Oui |
stop_on_error | Booléen (false par défaut) indiquant si l’on souhaite interrompre les tests si un test echoue | Booléen | Non | |
tag | Tag permettant de filtrer les tests à lancer | Chaîne de caractères | Non | |
tests | Nom du type de test (“integrity” par défaut) que l’on souhaite lancer (ici conf) | Chaîne de caractères | Type de test existant | Non |
verbose_on_error | Booléen (false par défaut) indiquant si l’on souhaite avoir plus d’information lorsqu’un test est négatif | Booléen | Non |
Voici les valeurs possibles dans le noyau pour les le paramètre tests :
conf
: Tous les tests de confs basés sur les application.ini et les APPINFOSconf/mini_conf
: Tests des application.ini et les APPINFOS minimalistes qui doivent être toujours au verts en préprod et en prodconf/security
: Tests des application.ini et les APPINFOS qui concernent la sécurité et qui doivent être au vert en prodbdd
: Tous les tests de confs basés sur le contenu de la base de donnéesbdd/security
: Tests sur la base de données qui concernent la sécurité et qui devraient être au vert en prod
Exemple
php voo4_cli.php mtd=tests tests=conf verbose_on_error=true result_dir_path=/var/www/app/resources/cron/
fillUserSysLastConnectionDate
La méthode fillUserSysLastConnectionDate
permet d’alimenter de {pj}_user_data.sys_last_connection_date
avec le dernier evénément de connexion trouvé dans le monitoring pour l’utilisateur.
Paramètre
Paramètre | Description | Type | Contrôle | Obligatoire |
---|---|---|---|---|
project | Nom du projet | Chaîne de caractères | Il y a un unique projet qui porte ce nom dans l’application | Oui |
Exemple
php voo4_cli.php mtd=fillUserSysLastConnectionDate project=MyProject