Frontend - Client

Une liste des fichiers modifiés et créés pour permettre au client de se connecter au backend.

Interface de connexion

  • renderer/components/mainPages/connectionModal.jsx contient le modal utilisé pour se connecter à un serveur et configurer un espace de travail distant. Ceci utilise beaucoup le fichier suivant :

  • main/utils/remoteFunctions.js contient la plupart des fonctions utilisées pour établir des tunnels SSH, effectuer des opérations sur l'ordinateur distant via SSH (installer le serveur, renommer des fichiers/dossiers, etc.) et gérer l'état local de la connexion établie. Cet état est stocké et synchronisé dans 2 fichiers :

    • renderer/components/tunnel/TunnelContext.jsx pour les composants React

    • renderer/utilities/tunnelState.js pour les autres composants

  • renderer/components/mainPages/remoteServer.tsx contient le panneau qui affiche le statut, les journaux et les tunnels établis vers le serveur distant.

  • main/sshKeygen.js est utilisé pour la génération de paires de clés SSH utilisées lors de la configuration de la connexion distante.

Requêtes et utilitaires

  • Quelques fichiers d'aide aux requêtes (requests.js, mongoDBUtils.js, workspaceUtils.js) ont été modifiés pour ajuster leur comportement selon que l'espace de travail est marqué comme distant (workspace.isRemote) ou si un tunnel est connecté (pour acheminer les requêtes vers le port correct, en utilisant tunnelState.js)

  • renderer/utilities/fileManagement/fileOps.js devient le nouveau point d'entrée pour toutes les fonctions dans fileManagementUtils.js, qui sera toujours utilisé si l'espace de travail est local. Sinon, il utilise l'alternative basée sur SSH présente dans fileOps.js.

Pont pour l'architecture distante

  • main/background.js a été mis à jour pour changer le processus de démarrage du client, vérifiant si le serveur se trouve localement puis l'exécutant le cas échéant. Il a perdu certains IPC liés au démarrage de serveurs spécifiques (comme Mongo et Go, qui sont maintenant dans les fichiers backend) et en a gagné d'autres pour l'installation, la détection et la mise à jour du serveur local.

  • main/preload.js est une surface d'API renderer sécurisée qui expose des méthodes de requête backend/tunnel via IPC, afin d'envoyer facilement des requêtes Express depuis du code. Voici un exemple : const response = wait window.backend.requestExpress({ method: 'get', path: '/status', host: '127.0.0.1', port: 5000, timeout: 3000 })

Mis à jour