Aller au contenu

Continuité — accès externes détenus par une seule personne (public-diploma-verify)

Pourquoi ce document existe

Voir le modèle et la justification complète dans guides/continuite-acces-externes.md. Ce document applique la même grille au projet public-diploma-verify, en désignant Cédric Gnansounou (GitHub cedricgnans) comme second contact.

Portée réduite pour ce projet

public-diploma-verify est un frontend statique sans backend propre, sans base de données, sans SSO — sa surface de dépendances externes est nettement plus petite que EPIDOCS. Pas d'Azure AD, pas de Resend, pas de Cloudinary ici.

Statut vérifié pour public-diploma-verify

Dépendance Ce qui a été vérifié Statut
GitHub — repo public-diploma-verify gh api repos/EpitechAfrik/public-diploma-verify/collaborators ✅ Cédric (cedricgnans) a déjà accès admin — rien à faire
GitHub Actions secrets (APP_BIND, APP_PORT, SSH_PRIVATE_KEY, VITE_API_BASE_URL, VPS_IP, VPS_USER) Un admin repo peut gérer les secrets (créer/modifier — jamais lire la valeur) ; gh api repos/EpitechAfrik/public-diploma-verify/actions/secrets confirme la liste des 6 secrets existants ✅ Couvert par l'accès admin GitHub ci-dessus
GHCR (ghcr.io/epitechafrik/public-diploma-verify) Les packages liés à un repo GitHub suivent les permissions du repo ✅ Couvert par l'accès admin GitHub ci-dessus
VPS (hébergement du conteneur) Non vérifiable depuis ce poste (pas de session SSH établie) ⬜ À vérifier — voir ci-dessous
Registrar DNS epitech.africa whois epitech.africa (lecture publique, depuis ce poste) : registrar = Gandi, registrant = IONIS GROUP (organisation, pas un compte personnel), serveurs de noms = ns1/ns2.o2switch.net ⬜ À vérifier qui détient les identifiants Gandi et/ou le panel o2switch — voir ci-dessous
Dépendance : API EPIDOCS (GET /api/diplomas/verify/<ref>/) Pas un accès externe propre à ce projet — ce frontend n'a pas de credentials vers EPIDOCS, il fait juste un appel HTTP public depuis le navigateur du visiteur ℹ️ Couvert par l'audit de continuité de EPIDOCS API lui-même — voir plus bas

Attention à ne pas confondre deux comptes GitHub

gh api repos/EpitechAfrik/public-diploma-verify/collaborators liste deux comptes au nom proche : cedricgnans (accès admin, c'est le bon compte — celui désigné dans ce document) et cedricgn (accès write seulement, compte distinct). Ne pas confondre les deux en cas de doute — confirmer directement avec Cédric quel compte est son compte principal actif.

À faire, par dépendance

VPS (hébergement de production)

  • Où : accès SSH sur le serveur qui héberge /root/projects/public-diploma-verify (IP dans le secret GitHub VPS_IP).
  • Pourquoi c'est critique : c'est là que tourne le conteneur public_diploma_verify. Sans accès SSH, aucune intervention manuelle possible (redémarrage, rollback, lecture de logs, inspection du .env) — seul le pipeline CI/CD automatique reste opérationnel.
  • Probable mutualisation avec EPIDOCS : le chemin de déploiement (/root/projects/public-diploma-verify), le nom des secrets (VPS_IP, VPS_USER, SSH_PRIVATE_KEY) et le pattern de workflow sont identiques à ceux d'EPIDOCS — il est probable (à confirmer, pas vérifié ici) qu'il s'agit du même VPS physique. Si l'action décrite dans l'audit EPIDOCS API (création d'un utilisateur cedric sur le VPS) a déjà été faite, il n'y a probablement rien de plus à faire ici au-delà de vérifier que ce compte a bien accès au dossier /root/projects/public-diploma-verify (permissions Docker déjà couvertes par le groupe docker).
  • Action : confirmer si c'est le même VPS que EPIDOCS ; si oui, s'assurer que l'utilisateur cedric déjà créé peut lire/écrire dans /root/projects/public-diploma-verify ; si c'est un VPS distinct, reproduire la procédure de création d'utilisateur SSH dédié décrite dans guides/continuite-acces-externes.md.

Registrar DNS epitech.africa

  • Où : le domaine epitech.africa (dont diplome.epitech.africa est un sous-domaine) est enregistré chez Gandi (registrar.gandi.net, confirmé par whois public), au nom de l'organisation IONIS GROUP — pas un compte personnel Yémalin, ce qui est plutôt rassurant. Les serveurs de noms pointent vers ns1.o2switch.net/ns2.o2switch.net : la zone DNS elle-même (les enregistrements A/CNAME) est très probablement gérée depuis un panel o2switch, distinct du panel registrar Gandi.
  • Pourquoi c'est critique : sans accès à l'un ou l'autre (Gandi pour le registrar/renouvellement, o2switch pour les enregistrements DNS), impossible de modifier un enregistrement DNS (changement d'IP de VPS, ajout d'un sous-domaine, renouvellement du domaine à son échéance du 2027-10-07).
  • Différence importante avec EPIDOCS : epitech.africa est un domaine distinct de epitools.bj (utilisé par EPIDOCS/mydocs) — un accès donné pour l'un ne couvre pas l'autre.
  • Action : identifier qui détient effectivement les identifiants du compte Gandi et du panel o2switch (probablement un compte IT EPITECH/IONIS plus large, pas forcément Yémalin personnellement) — demander à l'IT EPITECH Bénin ou au groupe IONIS d'ajouter Cédric comme contact autorisé sur ces deux panels si Yémalin en a l'accès direct.

API EPIDOCS (dépendance fonctionnelle, pas un accès à transférer ici)

  • Où : ce frontend n'a ni compte de service, ni clé API, ni session vers EPIDOCS — c'est un appel HTTP public fait par le navigateur du visiteur final, sans identifiants.
  • Pourquoi le mentionner quand même : si diplome.epitech.africa affiche des erreurs de vérification, la cause racine est souvent côté EPIDOCS API (backend down, secret Azure AD expiré affectant tout le service, etc.) plutôt que ce projet lui-même.
  • Action : aucune action d'accès spécifique à ce projet — s'assurer que les actions listées dans epidocs-api's propre audit de continuité (VPS, Azure AD, Resend) sont bien réalisées, puisque ce projet en dépend fonctionnellement sans avoir de credentials propres à transférer.

Ce qui n'a pas besoin d'audit ici

Contrairement à EPIDOCS, ce projet n'a pas :

  • de compte Azure AD / SSO (pas d'authentification du tout — site 100% public) ;
  • de fournisseur d'email transactionnel (Resend/SMTP) ;
  • de stockage fichiers distant (Cloudinary) ;
  • de base de données propre.

Sa surface d'accès externes se limite à GitHub (repo + secrets Actions + GHCR, tous couverts par le même accès admin GitHub), au VPS, et au DNS/registrar du domaine epitech.africa.