From a1dfa586339bb4df96a08d04efd3d1de10ded280 Mon Sep 17 00:00:00 2001 From: Eryne Kachetel-Langue Date: Thu, 28 Nov 2024 14:46:06 +0100 Subject: [PATCH] ITEM-348-back-ajouter-un-readme-developpement : - modification du readme.md - ajout d'un readme-developpement.md --- readme-developpement.md | 85 ++++++++++++++++++++++------------------- readme.md | 58 +++++++++++----------------- 2 files changed, 68 insertions(+), 75 deletions(-) diff --git a/readme-developpement.md b/readme-developpement.md index 2c755282..13311231 100644 --- a/readme-developpement.md +++ b/readme-developpement.md @@ -1,56 +1,63 @@ -# Utilisation des filtres de kibana-prod sur item pour travailler sur les logs +# item-api -## Guide pour voir les logs d'item de traitement des demandes en production pour comprendre en cas d'incident ou de bug pourquoi ça n'a pas fonctionné +Le langage utilisé est Java, avec le framework Spring. -- se connecter sur https://kibana-prod.abes.fr/ avec vos identifiants +**item-api** est une API permettant de : +1. calculer un taux de recouvrement +2. créer, modifier, supprimer des exemplaires par lot dans des notices +3. récupérer les informations récapitulatives des demandes de recouvrement, de créations, de modification et de suppression +4. récupérer les données des demandes de création, de modification et de suppression sous forme de fichiers -![img.png](documentation/img.png) +## Architecture de l'API -- selectionner son espace qui a été préalablement crée par le SIRE (aller voir le SIRE pour créer son espace) +**item-api** est composée de trois modules : `batch`, `core`, `web` et d'un répertoire `docker`. +Chaque demande envoyée par le client item-client se voit attribuer un numéro de demande et un état. +Ce dernier changera en fonction de l'avancée de la saisie et du traitement de la demande. -![img.png](documentation/imgr.png) +### Module `batch` -- dans son espace, cliquer sur les elements suivants pour permettre d'avoir une visualisation des logs qui suivent un élément qu'on recherche dans le champ message -- dans **message** : on retrouve les logs qui sont dans item-batch +Le module `batch` permet d'effectuer les traitements de création, de modification et de suppression permettant +l'aboutissement des demandes enregistrées dans la base de données PostgreSQL. +Il se lance à intervals réguliers, qui sont définis dans le fichier `item-api/docker/batch/tasks.tmpl`. -![img_1.png](documentation/img_1.png) +### Module `core` -- prendre item-batch +Le module `core` permet de mettre à jour les informations de la demande au fur et à mesure que celle-ci est saisie +dans le client **item-client**. Ces informations sont enregistrées dans la base de données PostgreSQL. -![img_7.png](documentation/img_7.png) +Le fichier `core/src/main/java/fr/abes/item/core/constant/Constant.java` contient la plupart des associations +paramètres/valeurs intangibles qui seront utilisées dans **item-api**. +On y trouvera notamment les numéros des différents états qu'une demande peut avoir (ex : `ETATDEM_PREPARATION = 1`) +avec la signification de l'état. Il s'y trouve aussi la plupart des messages de complétion ou d'erreur que l'api +sera amenée à renvoyer, les REGEX et le nombre maximal de lignes par fichier que chaque type de demande peut accepter. -![img_3.png](documentation/img_3.png) +### Module `web` -![img_4.png](documentation/img_4.png) +Le module `web` permet d'exposer les webservices permettant au client **item-client** d'intéragir avec l'API. +Ces webservices se trouvent dans le package `web/src/main/java/fr/abes/item/web`. +C'est également dans ce module que l'on trouvera le service d'authentification +(dans le package `web/src/main/java/fr/abes/item/security`) +Le fichier `web/src/main/resources/application.properties` contient le paramètre spécifiant le nom +du répertoire de stockage sur le disque des fichiers liés aux demandes (`files.upload.path=/workdir/`) -![img_6.png](documentation/img_6.png) +### Répertoire `docker` -- le + à coté du timestamp va permettre de partir de l'heure d'origine du premier message recherché qui correspond au match effectué dans le champ de la recherche +Le répertoire `docker` contient les scripts shell de traitement, d'archivage, d'export de statistiques et les fichiers +***docker-entrypoint.sh*** et ***tasks.tmpl*** -![img_8.png](documentation/img_8.png) +## Configuration de l'API -- sort old new pour les avoir dans l'ordre chronologique +Les fichiers : +* application.properties +* application-dev.properties +* application-prod.properties +* application-test.properties -![img_9.png](documentation/img_9.png) +sont présents dans les dossiers ```src/main/ressources``` des modules : +* web +* batch -- editer le filtre pour créer une plage de temps de recherche - -![img_10.png](documentation/img_10.png) - -![img_11.png](documentation/img_11.png) - -- supprimer le filtre de recherche et refresh - -![img_12.png](documentation/img_12.png) - -- replacer le filtre du timestamp en chronologique - -![img_13.png](documentation/img_13.png) - -- on peut maintenant avoir toutes les lignes qui suivent la recherche par filtre effectuée (soit toutes les lignes qui suivent le traitement d'une demande) - -## Pour retrouver les lignes traitées par le batch sur une demande spécifique comprise dans un plage (exemple le filtre dbeaver sur la demande 11548382) - -![img.png](img.png) - -- faire ensuite un filtre dans kibana avec en paramètre le num_lignefichier pour retrouver ce qui s'est passé \ No newline at end of file +Ces fichiers sont non-versionnés. Cela signifie que certains paramètres +sont définis sans variables et qu'il vous appartiendra de les définir vous-même selon vos usages, +notamment concernant les accès aux bases de données. +Si vous avez besoin de plus de précisions, vous pouvez vous adresser à [envoyer un mail à item@abes.fr](item@abes.fr) diff --git a/readme.md b/readme.md index cc826dad..9ddd1847 100644 --- a/readme.md +++ b/readme.md @@ -1,49 +1,35 @@ -# Item-Api +# item-Api [![build-test-pubtodockerhub](https://github.com/abes-esr/item-api/actions/workflows/build-test-pubtodockerhub.yml/badge.svg)](https://github.com/abes-esr/item-api/actions/workflows/build-test-pubtodockerhub.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/abesesr/item.svg)](https://hub.docker.com/r/abesesr/item/) +Vous êtes sur le README usager. Si vous souhaitez accéder au README développement, +veuillez suivre ce lien : [README-developpement](README-developpement.md) + Ce dépôt héberge le code source de l'API de Item. Cette API fonctionne avec son interface utilisateur développée en VueJS (front) : https://github.com/abes-esr/item-client/ -Et l'application Item complète peut être déployée via Docker à l'aide de ce dépôt : https://github.com/abes-esr/item-docker/ - -## Partie serveur de l'application item - Server part of the item application - -### Note à l'attention des développeurs - Note to developers - -Les fichiers -* applications.properties -* application-PROD.properties -* application-TEST.properties +L'application Item complète peut être déployée via Docker à l'aide de ce dépôt : https://github.com/abes-esr/item-docker/ -présents dans le dossier ressources du (main) dans les modules -* web -* batch +**item-api** est une API permettant de : +1. calculer un taux de recouvrement +2. créer, modifier, supprimer des exemplaires par lot dans des notices +3. récupérer les informations récapitulatives des demandes de recouvrement, de créations, de modification et de suppression +4. récupérer les données des demandes de création, de modification et de suppression sous forme de fichiers -présents dans le dossier ressources du test dans les modules -* web -* core +## Principe général de fonctionnement -sont non-versionnés. Cela signifie que vous devrez avoir -votre propre base de donnée pour faire fonctionner l'application -en local des variables indiquées dans le dossier documentation. -Si besoin de précisions, vous adressez à item@abes.fr +### Webservices ---- +Des webservices exposés permettent de récupérer les demandes de recouvrement, créations, modifications et suppressions +du client web item-client. Ces demandes et leurs informations associées sont stockées dans une base de données PostgreSQL. -The files -* applications.properties -* application-PROD.properties -* application-TEST.properties +### Traitements -present in the resources' folder of the hand in modules -* web -* batch +Un processus autonome (batch) se lance à interval régulier pour lire cette base de données et effectuer les traitements +nécessaires à la réalisation des demandes (recouvrement, créations, modifications, suppressions). +Les données résultant des traitements sont ensuite écrites dans la base de données et des mails récapitulatifs +sont générés et envoyés à la personne ayant effectué la demande. -present in the test resources' folder in the modules -* web -* core +### Récapitulatifs des demandes -are not versioned. This means that you will need to have -your own database to run the application -locally of the variables indicated in the documentation file. -If you need further information, please contact item@abes.fr. +**item-api** permet d'accéder aux informations liées à une demande ainsi qu'aux fichiers initiaux (liste de PPN, liste d'EPN, etc.) +qu'elle mettra à disposition du client item-client. \ No newline at end of file