Description des fichiers application.ini et de leur utilisation

Edit me

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 que 0 ou par la valeur true.
    • par convention, on utilise de préférence les valeurs false/O et true/1

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 section production
  • [development : production] La section development étend la section production
  • [dev_mzz : development] La section dev_mzz étend la section development

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

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.

Documentation ZF

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

Documentation ZF

Mise en cache de ressources

Documentation ZF

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

Documentation ZF

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"