Description des fichiers application.ini et de leur utilisation
Introduction
Cet article vise à préciser les bonnes pratiques concernant l’utilisation du fichier application.ini pour la configuration des applications Voozanoo 4.
Généralités sur les application.ini
- Les fichiers INI sont des fichiers texte : ils peuvent être manipulés avec un logiciel courant de type éditeur de texte.
- Les fichiers sont divisés en sections. Chaque section comporte un certain nombre de paramètres de configuration. - Chaque section commence par un titre placé entre crochets « [ » et « ] ».
- La valeur de chaque paramètre de configuration est indiquée par une formule : paramètre = valeur.
- Les fichiers peuvent contenir des commentaires. Les commentaires sont souvent utilisés pour décrire les paramètres et les valeurs à introduire. Ils sont généralement précédés d’un point-virgule.
- Les directives acceptant des valeurs de type booléen fonctionnent comme suit :
- elles sont désactivées par les valeurs
false
,0
ou"0"
ou si elles sont absentes du fichier. Attention : la chaîne de caractère"false"
ne permet pas de désactiver une directive - elles sont activées par n’importe quelle chaîne de caractères autre que
"0"
, n’importe quel entier autre que0
ou par la valeurtrue
. - par convention, on utilise de préférence les valeurs
false
/O
ettrue
/1
- elles sont désactivées par les valeurs
Le système de section des application.ini
Les sections
Voici un exemple d’utilisation des sections :
[production]
resources.db.params.host = "probdd-crypted"
resources.db.params.username = "osea"
resources.db.params.password = ""
resources.db.params.dbname = "osea"
; ===================
; [ ici d'autres lignes que je ne reprends pas pour gagner de la place ]
; ===================
[staging : production]
resources.db.params.host = "bdd-preprod-crypted"
[development : production]
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
[dev_mzz : development]
resources.db.params.password = "root"
Ici, on voit quatres sections :
- [production] qui s’appliquera sur un environnement de production
- [staging : production] qui s’appliquera sur un environnement de préproduction
- [development : production] qui s’appliquera sur un environnement de développement
- [dev_mzz : development] qui s’appliquera sur un l’environnement de développement de MZZ
L’héritage dans les sections
L’héritage des sections fonctionne comme l’extension d’une classe en PHP :
- [staging : production] La section
staging
étend la sectionproduction
- [development : production] La section
development
étend la sectionproduction
- [dev_mzz : development] La section
dev_mzz
étend la sectiondevelopment
Concrètement, pour un environnement dont la variable d’environnement APPLICATION_ENV
est égale à dev_mzz
:
dev_mzz
surcharge development
surcharge production
Nous aurons les directives définies de la manière suivante :
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "root"
resources.db.params.dbname = "osea"
Le multi-section dans Voozanoo 4
Qu’est-ce qu’une application multi-section ?
La réponse est ici : L’article sur les application Voozanoo 4 multi-section
Les application.ini multi-section
[{Section connue du voozanoo.ini}-{[a-z0-9_]*}]
Exemple de fichier application.ini d’une application multi-section :
[production]
resources.db.params.host = "probdd-crypted"
resources.db.params.username = "mon_appli"
resources.db.params.password = ""
resources.db.params.dbname = "mon_appli"
voozanoo.host = "mon-appli.voozanoo.net"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/mon-appli.voozanoo.net/php/voozanoo.log"
[staging : production]
resources.db.params.host = "bdd-preprod-crypted"
resources.db.params.username = "mon_appli"
resources.db.params.password = ""
resources.db.params.dbname = "mon_appli"
voozanoo.host = "mon-appli.preprod.voozanoo.net"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/mon-appli.preprod.voozanoo.net/php/voozanoo.log"
[staging-foch : staging]
resources.db.params.username = "mon_appli_foch"
resources.db.params.password = ""
resources.db.params.dbname = "mon_appli_foch"
voozanoo.host = "mon-appli-foch.preprod.voozanoo.net"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/mon-appli-foch.preprod.voozanoo.net/php/voozanoo.log"
[staging-chic : staging]
resources.db.params.username = "mon_appli_chic"
resources.db.params.password = ""
resources.db.params.dbname = "mon_appli_chic"
voozanoo.host = "mon-appli-chic.preprod.voozanoo.net"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/mon-appli-chic.preprod.voozanoo.net/php/voozanoo.log"
[staging-annecy : staging]
resources.db.params.username = "annecy"
resources.db.params.password = ""
resources.db.params.dbname = "annecy"
voozanoo.host = "mon-appli-annecy.preprod.voozanoo.net"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/mon-appli-annecy.preprod.voozanoo.net/php/voozanoo.log"
A l’installation de l’application mon-appli
sur un serveur de préproduction l’outil ecdep up
se chargera de créer :
- Les différents vhost :
- mon-appli.preprod.voozanoo.net
- mon-appli-foch.preprod.voozanoo.net
- mon-appli-chic.preprod.voozanoo.net
- mon-appli-annecy.preprod.voozanoo.net
- les fichiers de logs :
- /space/log/mon-appli.preprod.voozanoo.net/php/errors.log
- /space/log/mon-appli.preprod.voozanoo.net/php/voozanoo.log
- /space/log/mon-appli-foch.preprod.voozanoo.net/php/errors.log
- /space/log/mon-appli-foch.preprod.voozanoo.net/php/voozanoo.log
- /space/log/mon-appli-chic.preprod.voozanoo.net/php/errors.log
- /space/log/mon-appli-chic.preprod.voozanoo.net/php/voozanoo.log
- /space/log/mon-appli-annecy.preprod.voozanoo.net/php/errors.log
- /space/log/mon-appli-annecy.preprod.voozanoo.net/php/voozanoo.log
- les dossiers de stockages :
- /space/applisdata/mon-appli/chunk/
- /space/applisdata/mon-appli/storage/
- /space/applistmp/mon-appli/
Les fichiers application.ini : qui surcharge qui ?
Le fichier application.ini sur GitHub
Sur GitHub, on trouve l’application.ini ici : [mon-appli]/configs/application.ini
Ce fichier est versionné et ne doit contenir aucun mot de passe ou token.
L’entrée resources.db.params.password
est réécrite sur les serveurs (voir plus loin).
Les fichiers application.ini au niveau de Voozanoo, des applis et des serveurs
Une application Voozanoo4 possède plusieurs fichiers de configuration .ini :
voozanoo.ini
, défini dans le noyau Voozanoo 4, permettant de définir des directives communes à toutes les applications qui se basent sur ce noyau ;application.ini
, défini pour une application, permettant d’ajouter des directives additionnelles et de surcharger celles du voozanoo.ini ;server.ini
, défini pour un serveur, permettant de surcharger les deux précédents pour la déclaration de directives plus spécifiques au serveur (architecture du filesystem, etc…)
Le troisième fichier de configuration est facultatif et son emplacement est déclaré par la variable d’environnement VOO4_SERVER_CONFIGURATION
.
Exemple : VOO4_SERVER_CONFIGURATION="/var/www/server_config.ini"
Pour plus d’information à son sujet, voir ce document.
Écrasement de certaines propriétés sur les serveurs
Puisqu’on ne doit pas stocker de mot de passe dans les application.ini sur GitHub, un système d’écrasement de propriétés a été mis en place :
- L’application fournit un fichier de configuration sans mot de passe.
- Le serveur dispose d’un fichier de configuration minimaliste avec les mots de passe.
- Le système s’en sert pour créer un fichier de configuration complet.
Sur les serveurs, dans le dossier /space/www/configuration/voozanoo4/configuration/
, sont stockés les fichiers .ini des application. Pour chaque application, il y a plusieurs fichiers de configuration :
- un fichier
[mon-appli].ini
, créé à la première installation du paquet - un ou plus fichier(s)
[mon-appli]_[numéro_version].ini
, livré(s) avec l’application
Lorsqu’une application est mise à jour, le [mon-appli]_[numéro_version].ini
est partiellement réécrit pour profiter du contenu du [mon-appli].ini
.
Par exemple, si les lignes suivantes sont présentes dans le fichier [mon-appli]_[numéro_version].ini
:
[production]
resources.db.params.host = "probdd-crypted"
resources.db.params.username = "osea"
resources.db.params.password = ""
resources.db.params.dbname = "osea"
Et que la ligne suivante est présente dans le fichier [mon-appli].ini
:
[production]
resources.db.params.password = "le_mdp_de_ma_bdd"
Après une mise à jour de mon application sur le serveur de production le fichier [mon-appli]_[numéro_version].ini
ressemblera à :
[production]
resources.db.params.host = "probdd-crypted"
resources.db.params.username = "osea"
resources.db.params.password = "le_mdp_de_ma_bdd"
resources.db.params.dbname = "osea"
Liste des directives Voozanoo4
Basic
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.protocole |
string |
"" |
Si absent, $_SERVER[ 'SERVER_PORT' ] est utilisé pour en déduire si la valeur doit être http ou https . |
voozanoo.host |
string |
"" |
Si absent, est récupéré depuis $_SERVER[ 'HTTP_HOST' ] . |
voozanoo.baseurl |
string |
"" |
Ces directives sont utilisés pour recontruire l’url de l’application courante.
voozanoo.protocole
://
voozanoo.host
voozanoo.baseurl
.
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.proxy.host |
string |
variable d’environnement PROXY_HOST du serveur |
|
voozanoo.proxy.port |
number |
variable d’environnement PROXY_PORT du serveur |
Récupération de la configuration de proxy par Core_Library_Application::getProxy()
.
Base de donnée
Directive | Type | Défaut | Description |
---|---|---|---|
resources.db.adapter |
string |
PDO_MYSQL |
|
resources.db.params.host |
string |
"" |
Adresse du serveur hébergeant la base de donnée. |
resources.db.params.username |
string |
"" |
Nom d’utilisateur pour accéder à la base de donnée. |
resources.db.params.password |
string |
"" |
Mot de passe pour accéder à la base de donnée. |
resources.db.params.dbname |
string |
"" |
Nom de la base de donnée. |
voozanoo.db.max_rows_per_query |
number |
10000000 |
Si présent et différent de 0, active une limite de lignes parcourues par une requête SQL. Si le nombre de lignes parcourues dépasse la limite, une erreur Core_Library_Exception_TooManyRowsError sera levée. |
voozanoo.db.max_rows_per_query_to_log |
number |
500000 |
Si présent et différent de 0, active une limite de lignes parcourues par une requête SQL. Si le nombre de lignes parcourues dépasse la limite, un warning TooManyRowsError est loggé afin de détecter les requêtes volumineuses. |
lib.voozanoo.adapter.zendDbSelect.packetSize |
number |
7000 |
Ajoute une limite sur le nombre de lignes récupérées lors de chaque requête SQL pour éviter une surcharge de la mémoire du serveur. |
Les directives suivantes ne sont pas lues dans Voozanoo4 mais sont gérées dans ZF1.
Directive | Type | Défaut | Description |
---|---|---|---|
resources.db.params.date_format |
string |
YYYY-MM-ddTHH:mm:ss |
|
resources.db.params.charset |
string |
UTF8 |
|
resources.db.isDefaultTableAdapter |
boolean |
true |
|
resources.db.params.driver_options |
Tableau associatif permettant de configurer des paramètres spécifiques à l’extension de base de donnée utilisé. |
Authentification et sécurité
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.saltKey |
string |
Clé de salage utilisée pour les mots de passe des utilisateurs système | |
voozanoo.session.time_out |
number |
Timeout de la session utilisateur en secondes | |
voozanoo.csrf.enable |
boolean |
true dans le code, false dans l’ini |
Active ou désactive la protection CSRF. Documentation |
Session Zend Framework
Mise en cache de ressources
File system
Directive | Type | Défaut | Description |
---|---|---|---|
dir.temp |
string |
"" |
Répertoire du serveur utilisé pour stocker les fichiers qui n’ont pas à être conservés dans le temps. |
voozanoo.export.async |
boolean |
false |
Active l’exportation de donnée asynchrone, utile lorsque beaucoup de données sont concernées. |
voozanoo.export.log.directory |
string |
"" |
Répertoire du serveur utilisé pour stocker les logs générés par l’exportation. L’exportation asynchrone ne peux pas être lancé si cette directive n’est pas renseignée. |
voozanoo.upload.directory |
string |
"" |
Répertoire du serveur utilisé pour stocker les fichiers envoyés (ou générés) par l’utilisateur. |
voozanoo.upload.chunk.directory |
string |
"" |
Répertoire du serveur utilisé pour stocker temporairement les fichiers envoyés par le client. |
voozanoo.resources.path |
string |
"" |
Chemin utilisé pour récupérer les ressources Voozanoo4 stockées sur l’espace disque. |
Logs
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.log.enable |
boolean |
true |
|
voozanoo.log.conf.timestampFormat |
string |
Y-m-d H:i:s |
|
voozanoo.log.conf.stream.writerName |
string |
Stream |
|
voozanoo.log.conf.stream.writerParams.stream |
string |
Variable error_log configurée dans le fichier php.ini du serveur. |
|
voozanoo.log.conf.stream.writerParams.mode |
string |
a |
|
voozanoo.log.memory |
string |
megabytes |
Si une valeur autre que none , affiche la consommation mémoire du processus PHP à l’arrondis le plus proche (bytes , kilobytes ou megabytes ). |
Migrations
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.migration.log.enable |
boolean |
false |
Ajoute les logs de migration dans un fichier en plus de la sortie normale dans le terminal. |
voozanoo.migration.log.conf.timestampFormat |
string |
Y-m-d H:i:s |
|
voozanoo.migration.log.conf.stream.writerName |
string |
Stream |
|
voozanoo.migration.log.conf.stream.writerParams.stream |
string |
module-migration.log |
|
voozanoo.migration.log.conf.stream.writerParams.mode |
string |
a |
JS library
Directive | Type | Défaut | Description |
---|---|---|---|
lib.corejsbundle.url |
string |
||
lib.jquery.url |
string |
||
lib.jquery.use_latest |
boolean |
true |
Demande d’utiliser la dernière version de jQuery disponible |
lib.jquery.use_migration |
boolean |
true |
Active jQuery Migrate |
lib.visualCaptcha.url |
string |
||
lib.bootstrap.url |
string |
||
lib.fontawesome.url |
string |
||
lib.epilogo.url |
string |
||
lib.codemirror.url |
string |
||
lib.ckeditor.url |
string |
||
lib.momentjs.url |
string |
||
lib.datepicker.url |
string |
||
lib.datetimepicker.url |
string |
||
lib.leaflet.url |
string |
||
lib.leafletchoropleth.url |
string |
||
lib.visualCaptcha.url |
string |
||
voozanoo.use_date_advanced |
boolean |
false |
Utilisation du widgetDateAdvanced pour les champs dates |
voozanoo.use_widgetboolean |
boolean |
Les champs de type boolean utiliseront le WidgetBoolean si true | |
lib.bootstrap-treeview.url |
string |
||
lib.csrf-protector.url |
string |
||
lib.yui.path |
string |
||
lib.yui.url |
string |
||
lib.yui.debug |
string |
Si true, utilise les versions non-minifié des fichiers JS (interdit en production) | |
lib.yui2.url |
string |
||
lib.voozanoo.assets.url |
string |
||
lib.voozanoo.javascript.url |
string |
||
lib.voozanoo.javascript.static |
string |
Si true , utilise les fichiers static/yui3-core-min.js et static/yui3-voocore[-min].js |
|
lib.voozanoo.javascript.path |
string |
||
lib.voozanoo.javascript.extended_yui_conf. PROJECT_NAME .jsuri |
string |
PROJECT_NAME peut être remplacé par default pour concerner tous les projets de l’application. |
|
lib.voozanoo.javascript.extended_yui_conf. PROJECT_NAME .resource |
string |
PROJECT_NAME peut être remplacé par default pour concerner tous les projets de l’application. |
|
lib.notiflix.url |
string |
/popups/notiflix |
|
voozanoo.notification.system |
string |
“voozanoo” | Choisir le système de notification. Autre valeur possible : “notiflix” |
PHP library
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.xlsxwriter |
string |
false |
Si true , utilise la bibliothèque PHP_XLSXWriter pour la génération de fichiers Excel. |
Selon les besoins des applications
Authentification multi-facteurs
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.MFA.verification_code.TTL |
integer |
5 |
Définit la durée de vie du code de vérification en minutes. Ne doit pas dépasser 5 minutes (voir contrôles de configuration “conf/security”). |
voozanoo.MFA.channel.email |
boolean |
true |
Si true , le facteur “e-mail” est disponible dans l’interface des paramètres du projet. |
voozanoo.MFA.channel.sms |
boolean |
false |
Si true , le facteur “sms” est disponible dans l’interface des paramètres du projet. |
voozanoo.MFA.excluded_usernames.project_name[] |
array |
array[] |
Les utilisateurs dont le username est ajouté à ce tableau sont dispensés d’authentification multi-facteur. Cette directive ne doit pas être utilisée en production (voir contrôles de configuration “conf/security”) |
voozanoo.MFA.debug_mode.enable |
boolean |
false |
Activer le mode de debug pour la connexion MFA, afin d’éviter l’envoi de mail/sms en phase de test. |
voozanoo.log.conf.debug.file_path |
string |
c’est l’endroit où les messages sont stockés pour éviter l’envoi d’e-mails ou de SMS pour la connexion MFA. | |
voozanoo.account_creation.use_token |
boolean |
false |
Si “true”, envoie un token par mail à la création d’un compte utilisateur au lieu du mot de passe. |
voozanoo.account_creation.token_ttl |
integer |
24 | Durée de vie (en heures) du token envoyé à la création d’un compte utilisateur (une durée supérieure à 2 semaines est considérée comme une erreur de configuration). |
Optimisations
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.light_init |
boolean |
false |
Si true , une version allégée de la méthode Core_Library_Controller_Action::init est utilisée partout où c’est possible. |
voozanoo.translation.disabled |
boolean |
false |
Désactive le processus de traduction au chargement de page pour économiser un peu de ressources. |
Directives natives de ZF1
Directive | Type | Défaut | Description |
---|---|---|---|
resources.frontController.displayExceptions |
|||
zend.exception_ignore_args |
boolean |
true |
Cache les arguments passé aux méhodes dans les traces d’exceptions |
resources.frontController... |
|||
includePaths.library |
string |
CHEMIN_EXTLIB |
Équivalent à un set_include_path(...); |
autoloadernamespaces[] |
string[] |
Exemple de la documentation ZF |
Epicraft
Directive | Type | Défaut | Description |
---|---|---|---|
epicraft.maximum_backups |
number |
3 |
Nombre de sauvegardes de l’application stocké sur l’espace disque maximum. Les plus anciennes sont automatiquement supprimées à mesure que de nouvelles sont créées. |
epicraft.store_project_str |
boolean |
true |
Enregistre le fichier json décrivant l’état complet du projet dans les ressources de l’application. Obligatoire pour un fonctionnement avec l’application mobile. |
epicraft.store_action |
boolean |
false |
Enregistre les actions jouées dans un varset action sous la forme d’un seul fichier json. Le varset est créée à la volée si nécessaire. |
epicraft.pull.allowed_url[] |
string |
Peut-être présent plusieurs fois. Liste les URL des instances d’Epicraft à proposer dans l’interface de configutration du mode pull des actions de Voozanoo 4. |
Webservice et assimilés
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.ws.metrics.enable |
boolean |
false |
Active l’accès au WebService Metrics. Documentation |
voozanoo.cli.metrics.enable |
boolean |
true |
Active l’accès à la méthode CLI getApplicationMetrics .Documentation |
voozanoo.ws.output |
string |
xml |
Conditionne le format de sortie du WS. Limité à xml ou json .Peut être surchargé directement par un paramètre de la requête /format_ws_output/json . |
voozanoo.ws.auth.debug_verbose_error |
boolean |
false |
WebService d’authentification. Permet d’obtenir plus d’informations sur le problème rencontré dans le cadre d’un debug. Cette fonctionnalité ne doit pas dépasser la préproduction. |
HUB (application mobile)
Directive | Type | Défaut | Description |
---|---|---|---|
hub.url |
string |
"" |
Adresse du serveur du service VooHub. |
hub.login |
string |
"" |
Nom d’utilisateur pour se connecter au serveur du service VooHub. |
hub.password |
string |
"" |
Mot de passe pour se connecter au serveur du service VooHub. |
epimob.disabled.update |
boolean |
false |
Désactive la mise à jour de fiches existantes. Chaque nouvelle arrivée de fiches donne un nouvel enregistrement dans la base de donnée, même si côté mobile, nous avons qu’une seule fiche éditée plusieurs fois. |
mobile. PROJECT_NAME .files |
strings |
Documentation |
Paramétrage pour l’envoi de SMS
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.sms.ceo.username |
|||
voozanoo.sms.ceo.password |
|||
voozanoo.sms.ceo.group |
|||
voozanoo.sms.ceo.proxy_host |
|||
voozanoo.sms.ceo.proxy_port |
|||
voozanoo.sms.adapter |
Module de stats
Directive | Type | Défaut | Description |
---|---|---|---|
modstat.url |
string |
"" |
Adresse du serveur du service Module de stats. |
modstat.login |
string |
"" |
Nom d’utilisateur pour accéder au service Module de stats. |
modstat.password |
string |
"" |
Mot de passe pour accéder au service Module de stats. |
Gestion de fichiers entre serveurs
Directive | Type | Défaut | Description |
---|---|---|---|
storageclient.adapter |
string |
"" |
Définit le programme utilisé pour le transfert. Aujourd’hui ne gère que rsync . |
storageclient.params.src |
string |
"" |
Chemin ou adresse source. |
storageclient.params.dest |
string |
"" |
Chemin ou adresse destination. |
storageclient.params.ssh |
"" |
Chemin vers un fichier de clé SSH. | |
storageclient.params.sudoer |
`` | false |
Traduction
Directive | Type | Défaut | Description |
---|---|---|---|
crowdin.token |
string |
"" |
Token de service utilisé par l’application pour se connecter à l’API Crowdin (en faire la demande au Framework). |
crowdin.project_name |
string |
"" |
Nom du projet qui sera créé dans Crowdin lors du premier lancement de la traduction. Cette directive est totalement optionnelle. En son absence, c’est le nom de la base de données de l’application si sera utilisée pour déterminer le nom du projet. Dans tous les cas, le préfix “voo-“ est ajouté au nom du projet lors de sa création. |
crowdin.shared_project |
boolean |
"" |
Indique que l’on souhaite se brancher sur un projet Crowdin partagé avec d’autres application. |
voozanoo.translation.disabled |
boolean |
false |
Désactive le processus de traduction au chargement de page pour économiser un peu de ressources. |
OAuth
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.oauth.authorize_self_signed_certificate |
|||
voozanoo.oauth.provider_url |
|||
voozanoo.oauth.consumers_auto_disconnect |
boolean |
true |
Indique s’il faut activer ou désactiver la déconnexion automatique des consumers depuis le provider |
Connexion avec Mailmerge
Directive | Type | Défaut | Description |
---|---|---|---|
mailmerge.url |
string |
"" |
Adresse du serveur du service MailMerge. |
mailmerge.login |
string |
"" |
Nom d’utilisateur pour accéder au service MailMerge. |
mailmerge.password |
string |
"" |
Mot de passe pour accéder au service MailMerge. |
API Github
https://epiconcept-paris.github.io/epidocs/github-api-manager.html
Voozanoo4 permet, via la classe Core_Library_Github, d’exploiter l’API de GitHub.
Directive | Type | Défaut | Description |
---|---|---|---|
github.access.token |
string |
"" |
Token d’identification sur la plateforme Github. |
Tests de cohérences
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo. PROJECT_NAME .coherence_test.panel.position |
string |
bottom |
Position du panel. |
query.respect_rights |
boolean |
false |
documentation epidocs Si cette directive vaut true , les droits de l’utilisateur seront respectés au lancement des tests de cohérence. |
voozanoo.resources.builder.query.use_inner_join |
boolean |
false |
Optimisation des tests de cohérence pour utiliser des INNER JOIN à la place de LEFT JOIN . |
query.coherence_controls.execute_on_initialization |
boolean |
true |
Arrêter de lancer les tests de cohérence à l’arrivée sur les formulaires si false |
Mise à jour de varsets
Directive | Type | Défaut | Description |
---|---|---|---|
disable.data_group.update |
boolean |
false |
Possibilité de désactiver la mise à jour des groupes. |
active.data_group.delete |
boolean |
false |
Suppression des données de la table {varset}_data_group lors de la suppression de fiches. |
Dataquery
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.resource.dataquery.check_syntax |
boolean |
true |
Active ou désactive la vérification XSD lors de la sauvegarde de ressources dataquery . |
voozanoo.dataquery.audit.activate |
boolean |
false |
Active ou désactive l’accès à l’ecran de lecture des dataqueries en SQL Dataqueries audit . |
Debug
Directive | Type | Défaut | Description |
---|---|---|---|
debug.activate |
boolean |
Active tous les outils de débugs côté client. | |
debug.activate. FONCTIONNALITE |
boolean |
Permet d’activer un des outils de debug. |
Timezone
Dans le contexte de applications Epiconcept utilisées sur différents fuseaux horaires, C’est possible de définir la timezone à l’aide du fichier ini en utilisant les directives suivantes.
Directive | Type | Défaut | Description |
---|---|---|---|
resources.db.params.driver_options.1002 |
string |
"" |
Définir la timezone de la base ,example : “SET NAMES utf8,time_zone=’Europe/Paris’” |
date_default_timezone |
string |
"" |
Définir la timezone dans le noyau, example : “Europe/Paris” |
La taille maximale du fichier de téléchargement (Epifiles)
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.upload.maxfilesize |
string |
"3" |
Définir limite de taille de fichier dans Epifiles” |
Conditionner le chargement des ressources de style selon la directive ‘apply_css_on_connection_pages’
Quand cette directive sera activée, cela permettra ainsi aux CP/CF d’avoir la possibilité de modifier le CSS des écrans d’authentification (auth/index/index, auth/index/expired-link, auth/index/localconn, auth/index/forgot-pwd, auth/otp/index, les écrans liés à la CPS)., et ainsi éviter l’intervention d’un développeur pour ses écrans spécifiques.
Directive | Type | Défaut | Description |
---|---|---|---|
apply_css_on_connection_pages |
boolean |
false |
Conditionner le chargement des ressources de style selon une nouvelle directive” |
Documentation plus complète sur les directives de Debug : Outil de débogage côté client
La directive des logs d’activité “voozanoo.activity.log.directory”.
Directive | Type | Défaut | Description |
---|---|---|---|
voozanoo.activity.log.directory |
string |
"/space/log/" HTTP_HOST "/activity" |
La directive “voozanoo.activity.log.directory” a été ajoutée au noyau pour indiquer le dossier où stocker les logs d’activité.” |
Exemple complet de fichier application.ini
Voici un exemple de fichier application.ini contenant déjà les directives importantes pour une application appelée mon-appli.
Ne pas oublier de l’adapter (nom de l’application, clef de salage, etc.).
[production]
resources.db.adapter = "PDO_MYSQL"
resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss"
resources.db.isDefaultTableAdapter = true
resources.db.params.host = "probdd-crypted"
resources.db.params.username = "[mon-appli]"
resources.db.params.password = ""
resources.db.params.dbname = "[mon-appli]"
; To avoid misunderstanding when retrieving text or varchar fields from DB encoded in UTF8
resources.db.params.charset = "UTF8"
; Base url from the DocumentRoot to the public directory of the application
; Ex : "/apps/my_project/public/"
voozanoo.protocole = "https"
voozanoo.baseurl = "/"
voozanoo.host = "[mon-appli].voozanoo.net"
; Absolute path where to store temporary files
dir.temp = "/space/applistmp/[mon-appli]/"
; Absolute path where to store chunks during Large File upload
; Optionnal if you don't use the Y.LargeFileUploader component
voozanoo.upload.chunk.directory = "/space/applisdata/[mon-appli]/chunk"
; Absolute path where files will be indefinitely stored (like a storage)
voozanoo.upload.directory = "/space/applisdata/[mon-appli]/storage"
; If application own custom widgets (for ALL projects
lib.voozanoo.javascript.extended_yui_conf.default.version = "1.0.0"
lib.voozanoo.javascript.extended_yui_conf.default.jsuri = "javascript/"
lib.voozanoo.javascript.extended_yui_conf.default.resource = APPLICATION_PATH "/resources/xml/default_yui_conf_modules.xml"
; If a project own custom widgets
; Replace |PROJECT_NAME| by the project name wich had custom widgets
; lib.voozanoo.javascript.extended_yui_conf.|PROJECT_NAME|.version = "1.0.0"
; lib.voozanoo.javascript.extended_yui_conf.|PROJECT_NAME|.jsuri = "javascript/"
; lib.voozanoo.javascript.extended_yui_conf.|PROJECT_NAME|.resource = APPLICATION_PATH "/resources/xml/|PROJECT_NAME|_yui_conf_modules.xml"
; Clé de salage utilisée pour les mots de passe des utilisateurs système
voozanoo.saltKey = "clef_de_salage_a_changer"
; Timeout de la session utilisateur en secondes
; Si absent la durée est de 4h (14400s)
voozanoo.session.time_out = 28800
; Mise en cache des formulaires
;resources.cachemanager.account.frontend.name = Core
;resources.cachemanager.account.frontend.customFrontendNaming = false
;resources.cachemanager.account.frontend.options.lifetime = 7200
;resources.cachemanager.account.frontend.options.automatic_serialization = true
; L'utilisation d'APC nécessite l'installation de APCU
;resources.cachemanager.account.backend.name = Apc
; équivalent à un set_include_path( APPLICATION_PATH "/library" . PATH_SEPARATOR . get_include_path() );
includePaths.library = APPLICATION_PATH "/library"
; Notez bien l'underscore final "_", il est ABSOLUMENT necessaire
autoloadernamespaces[] = "Admin_"
autoloadernamespaces[] = "App_"
autoloadernamespaces[] = "Rando_"
autoloadernamespaces[] = "Archive_"
; Utilisation du widgetDateAdvanced pour les champs dates
voozanoo.use_date_advanced = true
; Les champs de type boolean utiliseront le WidgetBoolean si true
voozanoo.use_widgetboolean = true
;Si cette directive vaut true, les droits de l'utilisateur seront respectés au lancement des tests de cohérence
query.respect_rights = false
; Sert à désactiver la mise à jour des groupes d'une fiche en cas de update de la fiche (https://github.com/Epiconcept-Paris/Voozanoo4/issues/671)
disable.data_group.update = false
; Config pour l'utilisation du module statistiques
modstat.url = 'https://stats.voozanoo.net'
modstat.login = ""
modstat.password = ""
; Config pour l'utilisation de mailmerge
mailmerge.url = 'https://mailmerge.voozanoo.net'
mailmerge.login = ""
mailmerge.password = ""
; Config pour l'utilisation du mobile
hub.url = "https://prohub2.voozanoo.net"
hub.login = ""
hub.password = ""
; Signale que la structure JSON des projets EpiCraft doivent être stockés dans les ressources (nécessaire pour le mobile)
epicraft.store_project_str = true
mobile.[mon-appli].files.build.path = "/space/applisdata/[mon-appli]/storage/epimob/build.js"
voozanoo.resources.path = APPLICATION_PATH "/resources"
voozanoo.oauth.consumers_auto_disconnect = FALSE
voozanoo.log.enable = TRUE
voozanoo.log.conf.timestampFormat = 'Y-m-d H:i:s'
voozanoo.log.conf.stream.writerName = "Stream"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/[mon-appli].voozanoo.net/php/voozanoo.log"
voozanoo.log.conf.stream.writerParams.mode = "a"
;Activate notification system => possible values are "voozanoo" or "notiflix"
voozanoo.notification.system = "notiflix"
;Use PHP_XLSXWriter library when generating Excel files
voozanoo.xlsxwriter = true
;la directive pour conditionner le chargement des ressources de style sur les pages de connexion
apply_css_on_connection_pages = TRUE
[staging : production]
resources.db.params.host = "bdd-preprod-crypted"
resources.db.params.username = "[mon-appli]"
resources.db.params.password = ""
resources.db.params.dbname = "[mon-appli]"
; Application host name
voozanoo.host = "[mon-appli].preprod.voozanoo.net"
resources.frontController.displayExceptions = true
lib.voozanoo.javascript.static = false
lib.yui.debug = true
; Absolute path where to store temporary files
;dir.temp = "/space/applistmp/[PROJECT_NAME]"
; Absolute path where files will be indefinitely sotred (like a storage)
;voozanoo.upload.directory = "/space/applisdata/[PROJECT_NAME]/storage"
; Absolute path where to store chunks during Large File upload
;voozanoo.upload.chunk.directory = "/space/applisdata/[PROJECT_NAME]/chunk"
; Absolute path of resources
voozanoo.resources.path = APPLICATION_PATH "/resources"
; Base url from the DocumentRoot to the public directory of the application
voozanoo.baseurl = "/"
voozanoo.log.conf.stream.writerParams.stream = "/space/log/[mon-appli].preprod.voozanoo.net/php/voozanoo.log"
[development : production]
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "[mon-appli]"
lib.voozanoo.javascript.static = false
lib.yui.debug = true
voozanoo.migration.log.enable = TRUE
voozanoo.migration.log.conf.timestampFormat = 'Y-m-d H:i:s'
voozanoo.migration.log.conf.stream.writerName = "Stream"
voozanoo.migration.log.conf.stream.writerParams.stream = "migration.log"
voozanoo.migration.log.conf.stream.writerParams.mode = "a"