From dd957c829bc1f297fa8b009c18896bf3c56b462b Mon Sep 17 00:00:00 2001 From: FyloZ Date: Sun, 15 Aug 2021 19:50:19 -0400 Subject: [PATCH] Init --- docs/Configuration/Général.md | 114 +++++++++++++++++++++++++++++++++ docs/Configuration/Sécurité.md | 42 ++++++++++++ docs/assets/favicon.png | Bin 0 -> 6745 bytes docs/assets/logo.png | Bin 0 -> 2338 bytes docs/index.md | 19 ++++++ mkdocs.yml | 12 ++++ 6 files changed, 187 insertions(+) create mode 100644 docs/Configuration/Général.md create mode 100644 docs/Configuration/Sécurité.md create mode 100644 docs/assets/favicon.png create mode 100644 docs/assets/logo.png create mode 100644 docs/index.md create mode 100644 mkdocs.yml diff --git a/docs/Configuration/Général.md b/docs/Configuration/Général.md new file mode 100644 index 0000000..eee11d5 --- /dev/null +++ b/docs/Configuration/Général.md @@ -0,0 +1,114 @@ +## 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` diff --git a/docs/Configuration/Sécurité.md b/docs/Configuration/Sécurité.md new file mode 100644 index 0000000..f13edaa --- /dev/null +++ b/docs/Configuration/Sécurité.md @@ -0,0 +1,42 @@ +### JWT +Color Recipes Explorer utilise JWT (JSON Web Tokens) pour garder une trace des utilisateurs authentifiés. + +#### Clé secrète +- Type: Manuelle +- Propriété: `cre.security.jwt-secret` +- Variable d'environnement: `CRE_SECURITY_JWT_SECRET` + +Les tokens JWT sont signés numériquement avec une clé secrète. Cela permet de sécuriser l'information qu'ils contiennent et ainsi s'assurer qu'ils peuvent seulement être lus par ceux qui ont accès à la clé secrète. Une clé secrète est pré-configurée dans chaque installation pour qu'elles fonctionnent sans configuration. Par contre, il est fortement recommandé de la changer car cette valeur est accessible publiquement. + +#### Expiration +- Type: Manuelle +- Propriété: `cre.security.jwt-duration` +- Variable d'environnement: `CRE_SECURITY_JWT_DURATION` +- Format: Millisecondes +- Valeur par défaut: `18000000` (5 heure) + +Les tokens JWT ont une expiration pour empêcher qu'un token volé soit éternellement valide. + +### Configurations +#### Sel +- Type: Manuelle +- Propriété: `cre.security.config-salt` +- Variable d'environnement: `CRE_SECURITY_CONFIG_SALT` +- Format: Chaîne de caractères encodée en hexadécimal + +Le sel est utiliser pour encrypter les configurations qui contiennent des informations sensibles, tel que le mot de passe de la base de donnée. Un sel unique est généré automatiquement lorsqu'il n'y en a aucun de configuré. Par contre, il est fortement recommandé de définir un sel car la valeur générée est stockée dans le même fichier que les configurations sensibles, ce qui n'est pas sécuritaire. Il est aussi important de garder le sel car s'il est perdu, les configurations sensibles ne seront plus lisibles. + +### Utilisateur root +L'utilisateur root est toujours présent. Il a tous les droits et doit donc être plus sécurisé. Il devrait seulement être utilisé lorsque c'est nécessaire, lors du premier démarrage lorsqu'il n'y a aucun autre utilisateur, ou lorsque l'installation est en mode 'urgence' par exemple. + +#### Identifiant +- Type: Manuelle +- Propriété: `cre.security.root.id` +- Variable d'environnement: `CRE_SECURITY_ROOT_ID` +- Valeur par défaut: `9999` + +#### Mot de passe +- Type: Manuelle +- Propriété: `cre.security.root.password` +- Variable d'environnement: `CRE_SECURITY_ROOT_PASSWORD` +- Valeur par défaut: `password` diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1e877b7c56f791c9d054152b2bc3f64b2e394de2 GIT binary patch literal 6745 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 literal 0 HcmV?d00001 diff --git a/docs/assets/logo.png b/docs/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..08822c80f11c5da7d23f4d739afe4904d62c71d6 GIT binary patch literal 2338 zcmV+-3ElRIP)EX>4Tx04R}tkv&MmKpe$iQ>7wR5eteaWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLxj8AiNQwVT3oT+iIPS;0dyl(!fKV+m&1xG5G~G56 zv8b3zuZn?J_|cDU^kP_MmN6$uad?ied-(Wz7vWjn=l&dBYQ|!KPb8jYhG`RT5KnK~ z2Iqa^5X;Ld@j3CBNf#u3x%5W^ytAVGwJG72cdMub+K6blL3k9znAUB5&wg+6mx)2Cnp`zf=WgK1r`M zweS(pvkhEaH#KDsxZD8-o($QPUCB>V$Yz1}Gy0}9(02=TuGM>M?BnzSNK#kv8{ps& z7|l`ky2raaT6_EVOryUaL!fe$BtIkI00006VoOIv00000008+zyMF)x010qNS#tmY zE+YT{E+YYWr9XB6000McNlirueSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00#O=L_t(|+U=ZsOcX~P$G_lt6cr0ZsK6N;RK!c57J*<5 zZ8ScLB!vbOOMBuEQh>Cy@8Rk?^5Yv$3_~q)xt(avFB5z5iHl~OMKnGJQ&#;IHw_zWrxng)5x!g`H=UKdh&Ik@>1vNFyV3t#6 zVvimvn5*mfNMbZTW9QCoB~gc1L_77%laq0yv=r-neKE-_E!tq(GzGf5$LX5O)*0d9 zM^Ij#Oc$WmdX4IrmWG>q_rlxW-mL9rXI~iiV+jh{hk}BoWTLf+I%nfXlq4j;$=1A~ z>-G0=^l06L9MhULrx6g~Og0K25mT`CUS7yKbOojn`QlPABkeMLnQy1R8Fjx8l689LqT?zFduql*hia7-icv|w6$@R^_#n_xpr;P=bMxICut$D(dAa z2M6q1yjXCPtgMYtDtj#YFq$7c5Uig*{R7IH#GLid4-bc*RLWc5-(P~**gKYgAT~CF z)jA!00aVnY%GRwDtiO6SLlm9uIe$KXM$0(V*FPmA#Vo2mLXN( ziIl#+T(q|v$Vf4Z8a8z*Z=K1cL2>azi;jP0NCIh1MWyzeXc`0Jct|>-4U!a_ri*7@?uRkb%~6jmovPLB|-RJd5QL ziI=E4ytnr_+}t*gN!!DHda9>OR3upM;j!N$ZwFqDio&IrFL~>?ZaqowN?DbtWo0-nuuNrR zV~6bQM2m}C*WHbsyLZFHQ!kbJATMtdS!gYy0zlr`vx4<9SqzlQpGMri@JY&-+`Bs~J)vM9Whmz|h`~=$stfiH;WBZqA&qkd?I>iHY~n)YOcQ4i)

y1MQ@g{$ zP&8g2h%z%N@$ujo|9erfu_tI1K@Xd-9xcK<7=sNr1sZ)q5FXye7N_~-^ zznQGG22lY(TU(1TA0MP$xdM&JB&yhd->?A{9RFu@yuJ4!Gt-~Uv<6XM*{Vg-^5yt6 zDhh=a6;K&Q_F|k~--GJvVq|9*kK2q8edLJXHZd`|2nuo}JH?z#@s+8bo@~dlW31@< zbynBh%(|XGXZ;+<3?>sZ8ue^o;4h}ps90NDBde}fvZA6~wrkf0=ISb)ko)Xut*wIX zH8$>}Wa_PA^ZE~hpsAlANL1pzz+&%ArKYCR*%@b&l9DVoHjBMRWsEMJ$6ba&KH^4G zKS79f>Q7Hkr?W#?{?tzpH1!iCDnXE_1c^!zBq~9WsKoog-#&w-3(eC)1ONa407*qo IM6N<$g1U)NkpKVy literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..ff5d5f0 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,19 @@ +# Acceuil +Color Recipes Explorer est un gestionnaire de recettes de couleurs. Ce projet a été créé pour centraliser des recettes de couleurs qui étaient stockées dans des fichiers séparés, en plus d'offrir une meilleur gestion de celles-ci grâce à plusieurs fonctionnalitées: + +* Gestion des utilisateurs + * Les utilisateurs ont différents niveaux d'accès aux fonctionnalités selon leurs permissions. + * Les utilisateurs peuvent être séparés en groupes qui ont également des permissions, qui seront héritées par ces utilisateurs. + * Un groupe par défaut peut être défini sur un navigateur pour permettre aux utilisateurs non connectés d'utiliser les fonctionnalités selon les permissions de ce groupe. + * Les actions exécutées par les utilisateurs sont journalisées. **(WIP)** +* Gestion des recettes de couleurs + * Les recettes de couleurs sont séparées en plusieurs mélanges pour permettre une meilleure organisation de celles-ci. + * Les quantités des produits dans les mélanges sont personnalisables et sont ajustées automatiquement pour toujours garder le même ratio. + * Les quantités des produits dans les mélanges peuvent exprimées en millilitres, en litres en galon américain. + * Des images peuvent être attachées à des recettes de couleurs. + * Certaines informations des recettes de couleurs (les notes et les étapes par exemple) peuvent être spécifiques à certains groupes. + * Il est possible d'exporter chaque recette de couleur vers un fichier Excel. +* Gestion des produits + * Une fiche signalitique (SIMDUT) peut être attachée à chaque produit pour permettre un accès immédiat en cas d'urgence. + * Une quantité en inventaire est stockée pour permettre de gérer plus facilement l'inventaire. + * Selon leur type, la quantité d'un produit dans une recette sera exprimée en pourcentage du premier ingrédient du mélange. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..d1b62e4 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,12 @@ +site_name: Color Recipes Explorer +site_url: https://cre.fyloz.dev/docs +theme: + name: material + palette: + primary: black + accent: light green + logo: assets/favicon.png + favicon: assets/favicon.png + font: + text: Open Sans + language: fr