Authentification 2FA |
Implémentation de l'authentification à deux facteurs pour renforcer la sécurité de l'application. |
Bun |
Runtime utilisé pour le backend en TypeScript, offrant de meilleures performances que Node.js. |
Caddy |
Serveur web utilisé pour gérer les certificats SSL et le reverse proxy. |
ChatProvider |
Composant Flutter gérant la communication en temps réel via WebSocket. |
Chiffrement de bout en bout |
Technique de sécurité assurant que seuls les interlocuteurs peuvent lire les messages échangés. |
Docker |
Technologie utilisée pour le déploiement des services backend. |
Fastify |
Framework utilisé pour l'API et le serveur WebSocket. |
Firebase Cloud Messaging |
Service de notifications push utilisé pour envoyer des notifications sur iOS et Android. |
Flutter |
Framework utilisé pour développer le client de l'application. |
FlutterSecureStorage |
Librairie Flutter utilisée pour le stockage sécurisé des clés et autres données sensibles sur les appareils des utilisateurs. |
Gitlab CI/CD |
Outil utilisé pour l'intégration continue et le déploiement. |
Gitlab Runner |
Utilisé pour automatiser la construction de l'application iOS. |
Healthcheck |
Vérifications de l'état du service pour s'assurer que les dépendances, comme la base de données, sont disponibles avant de démarrer l'application. |
Hive |
Base de données locale NoSQL utilisée pour stocker les messages de manière performante. |
Jelastic Cloud |
Plateforme de cloud computing utilisée pour l'hébergement de l'application. |
JUnit |
Format de rapport utilisé pour les résultats de tests dans la pipeline Gitlab. |
Lazy loading |
Technique utilisée par Realm pour améliorer les performances en chargeant les objets uniquement lorsque nécessaire. |
Load balancer |
Fonctionnalité intégrée à Docker Swarm utilisée pour répartir la charge entre plusieurs répliques du service. |
Node.JS |
Environnement d'exécution initialement considéré pour le backend avant de passer à Bun. |
Notifications Push |
Fonctionnalité permettant d'envoyer des notifications en arrière-plan aux utilisateurs. |
OpenAPI 3.0 |
Spécification utilisée pour décrire l'API de l'application. |
OWASP ZAP |
Outil utilisé pour identifier les vulnérabilités potentielles de sécurité. |
PlantUML |
Outil utilisé pour créer le diagramme de la base de données. |
PreKeysStore |
Composant de stockage des clés publiques utilisé pour gérer les clés de chiffrement dans l'application. |
Prisma |
ORM utilisé pour interagir avec la base de données et générer les migrations. |
Protocole Signal |
Protocole de chiffrement sécurisé de bout en bout, utilisé pour sécuriser les communications. |
Realm |
Base de données locale NoSQL utilisée pour stocker les messages de manière performante. |
SecureStorage |
Utilisé pour stocker des données de manière sécurisée sur les appareils des utilisateurs. |
SecureStorageManager |
Gestionnaire de stockage sécurisé implémenté pour gérer les clés et les données sensibles dans Flutter. |
SessionBuilder |
Composant de la librairie Signal utilisé pour construire des sessions chiffrées entre utilisateurs. |
Typescript |
Langage utilisé pour le développement du backend. |
UUIDv4 |
Type d'identifiant utilisé pour les utilisateurs, permettant d'empêcher les attaques par devinette des identifiants. |
Vitest |
Framework utilisé pour les tests unitaires du serveur Missive. |
WebCrypto |
API de chiffrement native à Node.JS, non disponible sur React Native, influençant le choix de Flutter pour le développement multi-plateformes. |