## Types de configuration
### Configurations manuelles
Ces configurations ne peuvent pas être gérées par l'installation et doivent être définies manuellement avant le démarrage de celle-ci.
Il y a plusieurs façon de modifier ces configurations.
#### Fichier de propriétés
Il est possible de créer un fichier de propriétés contenant les valeurs voulues et de le passer à l'application lors du démarrage.
**Exemple:** `java -Dspring.config.additional-location=chemin/vers/mon-fichier.properties -jar ColorRecipesExplorer.jar`
#### Variables d'environnement
Toutes les configurations manuelles peuvent être définies grâce aux variables d'environnements.
**Exemple Linux:** `SERVER_PORT= java -jar ColorRecipesExplorer.jar`
#### Arguments de ligne de commande
Les configurations manuelles peuvent également être définies en ajoutant des propriétés en argument à la ligne de commande lors du démarrage.
**Exemple:** `java -Dserver.port= -jar ColorRecipesExplorer.jar`
### Configurations gérées
Ces configurations sont gérées par l'installation et sont généralement modifiables dans l'interface. Ces configurations sont pour la plupart stockées dans la base de données. Celles qui doivent être lues avant l'accès à la base de données (comme l'URL de la base de données) sont stockées dans un fichier de configuration. **Une erreur dans ces configurations n'empêchera pas le démarrage de l'application**.
## Configurations
### Apparence
#### Logo
- Type: Gérée
- Propriété: `instance.logo.path`
- Stockage: Base de données
- Valeur par défaut: `images/logo`
Le chemin relatif vers le logo. Le logo s'affiche à la droite du menu dans l'interface.
#### Icône
- Type: Gérée
- Propriété: `instance.icon.path`
- Stockage: Base de données
- Valeur par défaut: `images/icon`
Le chemin relatif vers l'icône. L'icône s'affiche dans l'onglet de la page du navigateur.
### Données
#### Répertoire des données
- Type: Manuelle
- Propriété: `cre.server.data-directory`
- Variable d'environnement: `CRE_SERVER_DATA_DIRECTORY`
- Valeur par défaut: `data`
Spécifie l'endroit où seront stockées les données, comme les images et les fiches signalitiques.
#### Répertoire des configurations
- Type: Manuelle
- Propriété: `cre.server.config-directory`
- Variables d'environnement: `CRE_SERVER_CONFIG_DIRECTORY`
- Valeur par défaut: `config`
Spécifie l'endroit où seront stockées les configurations.
#### Période d'expiration de l'approbation de l'échantillon des recettes
- Type: Gérée
- Propriété: `recipe.approbation.expiration`
- Stockage: Base de données
- Format: Période ([Documentation](https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/time/Period.html))
- Valeur par défaut: `4M` (4 mois)
#### Période d'expiration des kits de retouches complets
- Type: Gérée
- Propriété: `touchupkit.expiration`
- Stockage: Base de données
- Format: Période ([Documentation](https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/time/Period.html))
- Valeur par défaut: `1M` (1 mois)
Les kits de retouche complétés expirent après la période configurée. Les kits de retouche expirés seront supprimés automatiquement.
#### Activer le cache des PDFs générés
- Type: Gérée
- Propriété: `touchupkit.pdf.cache`
- Stockage: Base de données
- Format: Booléen
- Valeur par défaut: `true`
Cette option permet de stocker les PDFs générés sur le disque, ce qui permet d'accélérer l'accès aux PDFs si la lecture des fichiers cachés sur le disque est plus rapide que la génération d'un nouveau PDF.
### Système
#### Port de l'instance
- Type: Manuelle
- Propriété: `server.port`
- Format: Nombre (0-65535)
- Valeur par défaut: `9090`
#### URL de l'instance
- Type: Gérée
- Propriété: `instance.url`
- Stockage: Base de données
- Format: URL (Important de ne pas avec une barre oblique à la fin)
- Valeur par défaut: `http://localhost:9090`
Utilisé pour générer l'URL de certaines ressources, comme les images et les fiches signalitiques.
#### URL de la base de données
- Type: Gérée
- Propriété: `database.url`
- Stockage: Fichier de configuration
- Format: URL JDBC
- Valeur par défaut: `mysql://localhost/cre`
#### Utilisateur de la base de données
- Type: Gérée
- Propriété: `database.username`
- Stockage: Fichier de configuration
- Valeur par défaut: `root`
#### Mot de passe de la base de données
- Type: Gérée
- Propriété: `database.password`
- Stockage: Fichier de configuration
- Valeur par défaut: `root`