---
tags: produit plateformes de collecte
---
# Standards de développement Plateforme(s) de collecte
## Gitflow
- conventional commit + changelog dans les release
- "linter" de commit
- reprendre Knowledge -> voir avec Dylan
- main + dev + feature branch
- versionning ??? automatique ? à la main ? avec des -rc ? des -rc0n ?
- cible InseeFrLab -> InseeFr
- Nico va demander les Projets
## CI/CD
- mvn build dans le dockerfile
- test dans actions à part
- build skip test dans dockerFile
- faire la même avec Node/yarn
- tag automatique ? détection des erreurs de tag déjà existant
- à étudier avec le GitFlow
## Tests / qualimétrie
- backend :
- tests restAssure
- données de test dans h2
- front ? quels tests ?
- Initier les avec jest
- étudier les lib "react-test" ??
- branchement à sonar
- voir côté InseeFrLab les projets qui l'utilisent
- traitements des alertes dependabot
- quelles actions ?
- au fil de l'eau ?
## Properties
- fichiers externes pour le CEI qui surchargent les properties internes, pour un déploiement conteneurisé on utilise uniquement les properties internes ou les variables d'env (on fait pas mode CEI sur kube...)
- on va garder l'astuce configuration.json + var d'env (envusbst) pour le JS
## Application
- profil ? test et c'est tout ?
- ok un seul profil
- prévoir mode noauth + oidc
- si noauth dans les fronts permettre la sélection d'un rôle -> à faire sur tous les nouveaux produits
- données de démo (chargées comment ?) vs données de test : dataloader (if pas de données ) vs fichier data.sql (h2)
- séparer données de test / données de démo
- prévoir un end-point spécifique pour les données de démo ?
- swagger (avec de la doc), plus précis
- gestion de la localisation/langue de l'appli
- formatter/linter dans les projets :+1:
## Supervision
- harmonisé end-point, commence tous par "/api/xxxx"
- healthcheck
## Monitoring
- Package micrometer/prometheus sur les API
- Embarquer Glowroot - Dockerfile
- sécuriser comme il faut -> spring-security
- conf log4j2 : avoir la même pour tous pour pouvoir entrer
## Architecture (hexagonale)
- prévoir des bouchons partout où un service externe pourrait être indisponible / non inclus dans l'écosystème
# Développement
## Façon de travailler
- code harmonisé avant
- linter, prettier, dossier ("core", "ui" et "i18n")
- concept de rôle (pour Coleman-Management)
- OIDC : dans jeton (rôle général d'accès à l'appli) + rôle fin via appel getRole à l'API
- noAuth : accès à l'appli + rôle fin via appel getRole à l'API
- autonome "je me casse les dents tout seul" :nerd_face:
- aide si besoin
@Betty -> "pilotage"
@eric-thuaud -> "mes-enquêtes"
Une carte Trello chacun d'ici : 06/07 octobre
### Tests
- jeux de données -> tests fonctionnels
- première version : tester la pile technique ou "core"
- utiliser "jest" ou "react-test" ?
- https://fr.reactjs.org/docs/testing.html
## CI/CD
- github actions à mettre en place pour test + docker
- gitlab-ci
- migrer vers InseeFr, convention de nommage : coleman-xxx
## Validation du code
- PR sur GitHub, validation par @laurentC35 ou @NicolasTurban -