Skip to content

Commit

Permalink
Merge pull request #98 from abes-esr/ITEM-348-back-ajouter-un-readme-…
Browse files Browse the repository at this point in the history
…developpement

ITEM-348-back-ajouter-un-readme-developpement :
  • Loading branch information
SamuelQuetin authored Nov 29, 2024
2 parents 1598915 + a1dfa58 commit db14421
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 75 deletions.
85 changes: 46 additions & 39 deletions readme-developpement.md
Original file line number Diff line number Diff line change
@@ -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é
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)
58 changes: 22 additions & 36 deletions readme.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit db14421

Please sign in to comment.