4.4 KiB
Raw Blame History

agent_deploy.md

Contexte

Le site est sur @https://dev4.4nkweb.com/lecoffre (lecoffre_front). Il sera redirigé au login des notaires vers un site qui redirige vers local.4nkdev.com qui sera redirigé vers @https://dev4.4nkweb.com/lecoffre avec l'ouverture de l'iframe @https://dev4.4nkweb.com/ (ihm_client).

Analyse le contenu de lecoffre_node/IA_agents/flux.md pour comprendre les flux. Met à jour ce flux si tu détecte des incohérences ou pose des questions pour confirmer.

Le déploiement se fait depuis le répertoire lecoffre_node/, en utilisant les scripts présents dans scripts/. Ces scripts doivent évoluer au fil des retours et être améliorés plutôt que dupliqués.

Dans tous les projets :

  • Une branche Git dédiée ext existe.
  • Aucun tag Git nommé ext nexiste.
  • Des images Docker avec le tag ext existent.
  • Les images Docker ne sont build que via CI qui est la seule à pousser sur le registry ou pour test localement

Projets locaux avec Dockerfile à déployer par lecoffre_node/ (d'autres projets externes sont ne dépendance dans le lecoffre_node/docker-compose.yml):

  • sdk_relay/ (relai des transations et messages et oracle)
  • sdk_signer/ (signature des processus métier et des identités/profils)
  • sdk_storage/ (stockage temporaire)
  • ihm_client/ (iframe dans les frontend des projets pour interactions avec les clés privés Bitcoin Silent Payment)
  • lecoffre-back-mini/ (backend pour les API tierces du projet lecoffre)
  • lecoffre-front/ (frontend du projet lecoffre)

Projets locaux sans Dockerfile à vérifier lecoffre_node/:

  • sdk_common/
  • sdk_client/
  • sdk-signer-client/

Procédure générale

Vérifications initiales

  1. Vérifier que le dépôt distant est public (si possible).
  2. Vérifier lutilisation des clés SSH pour le déploiement Git.
  3. Vérifier que la branche courante est bien ext.
  4. Mettre à jour les dépendances.
  5. Vérifier les variables denvironnement.

Mise à jour et construction

  1. Construire le projet.
  2. Mettre à jour la documentation.
  3. Mettre à jour les tests.
  4. Mettre à jour les scripts.
  5. Vérifier que la présence et le contenu exhaustif et spécifique de :
    • .gitignore
    • .dockerignore
    • .cursorignore

Synchronisations

  1. Synchroniser les configurations dans lecoffre_node/conf.
  2. Synchroniser les logs dans lecoffre_node/logs.

Sécurité et conformité

  1. Vérifier que le code ne fournit pas :
    • de données personnelles,
    • de données sensibles exploitables,
    • de failles de sécurité.

Gestion Git

  1. Pousser toutes les modifications sur la branche Git ext.
  2. Supprimer les fichiers distants non suivis par Git.

Analyse et correction

  1. Analyser les logs.
  2. Corriger toutes les erreurs, petites et grosses, sans désactivation, sans simplification, sans contournement.
  3. Tester.
  4. Analyser de nouveau les logs.
  5. Vérifier que les logs ne contiennent pas de données personnelles ou sensibles.
  6. Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs)

Boucle damélioration

  1. Ne pas créer de nouvelles versions de scripts : améliorer et tester ceux existants.
  2. Mettre à jour la documentation avec le retour dexpérience à chaque fois par une mise à jour de docs/REX.md.
  3. Recommencer si nécessaire pour obtenir un déploiement fluide et parfait.
  4. Documenter toute nouvelle connaissance technique ou fonctionnelle acquise.
  5. Répéter la synchronisation des confs et logs.
  6. Pousser toutes les modifications sur la branche ext.
  7. Supprimer à nouveau les fichiers distants non suivis.
  8. Répéter analyse des logs, corrections, tests jusqu'à un déploiement parfait.

Spécificités Dockerfile

Pour tous les projets contenant un Dockerfile, avant de pousser sur la branche ext :

  • Mettre à jour le Dockerfile pour maîtriser les prérequis :
    • inclure sudo apt update && sudo apt upgrade,
    • installer jq, curl, sed, awk, telnet, ping, npm (dernière version), wscat.
  • Construire limage pour test.
  • Vérifier .dockerignore.
  • Vérifier à l'absence de dépendances croisées ou dupliquée entre les projets, sinon mutualiser via d'autres projets/docker

Après le push sur la branche Git ext :

  • Pousser limage sur le tag Docker ext via la CI.