1Résumé exécutif
Trackoya est un service SaaS B2B de pointage mobile pour équipes terrain, édité par GEJ PARTNERS SAS, société française enregistrée au RCS de Créteil (SIREN 907 861 132). Le service est conforme au RGPD et hébergé exclusivement en France.
Aucun transfert de données hors UE. L'ensemble des données personnelles est stocké, traité et sauvegardé sur des serveurs situés en France.
Ce document décrit l'architecture technique, les mesures de chiffrement, l'isolation entre clients (multi-tenant), les contrôles d'accès et les procédures opérationnelles. Il est complémentaire du DPA (Accord de sous-traitance) et de la Politique de confidentialité.
2Architecture & infrastructure
2.1 Hébergement
L'infrastructure de Trackoya est hébergée exclusivement chez OVHcloud SAS, dans des centres de données situés en France métropolitaine (Roubaix / Strasbourg / Gravelines). OVHcloud est un acteur français certifié ISO/IEC 27001, ISO/IEC 27017, ISO/IEC 27018, HDS et qualifié SecNumCloud par l'ANSSI.
2.2 Composants
- Serveur applicatif : Node.js 20 LTS sur Ubuntu Server, gestion des processus via PM2, reverse proxy Nginx avec terminaison TLS
- Base de données : PostgreSQL 16 (relationnelle, ACID, contraintes d'intégrité)
- Stockage fichiers : système de fichiers chiffré au repos sur l'infrastructure OVH
- Distribution mobile : Apple App Store (iOS) et Google Play (Android), apps maintenues à jour
- CDN web : assets statiques servis via Nginx avec compression gzip et cache HTTP
2.3 Disponibilité
L'infrastructure cible un taux de disponibilité de 99,5%. Surveillance 24/7 de l'état des services applicatifs et des certificats SSL. En cas d'incident, redémarrage automatique des processus via PM2 et alertes immédiates aux équipes techniques.
3Chiffrement
3.1 Chiffrement en transit
Toutes les communications entre les clients (apps mobiles, navigateurs web) et les serveurs Trackoya sont chiffrées en TLS 1.2 ou supérieur, avec certificats Let's Encrypt renouvelés automatiquement et configuration HSTS forcée.
3.2 Chiffrement au repos
La base de données PostgreSQL et les sauvegardes sont stockées sur des disques chiffrés AES-256 fournis par OVHcloud. Les sauvegardes quotidiennes sont chiffrées et conservées sur l'infrastructure OVH en France.
3.3 Mots de passe & secrets
Trackoya n'utilise pas de mots de passe utilisateur classiques. L'authentification employeur se fait par OTP email (code à usage unique de 6 chiffres expirant en 10 minutes). L'authentification employé se fait par token URL ou code PIN à 6 chiffres unique. Aucun mot de passe n'est jamais stocké en base.
Les secrets serveur (clés API, tokens internes) sont stockés en variables d'environnement, non versionnés, chargés au démarrage du processus.
4Authentification & contrôle d'accès
4.1 Employeurs (CRM)
- Login passwordless : email + OTP à 6 chiffres expirant en 10 min
- Tokens de session JWT signés cryptographiquement, durée de vie 30 jours, révocables à tout moment
- Rate limiting sur les endpoints d'authentification (max 30 requêtes / 10 min)
- Blocage des emails placeholders (you@company.com, test@test.com, etc.) pour éviter les bounces et abus
4.2 Employés (PWA / app)
- Token URL personnel (32 caractères hexadécimaux aléatoires) ou code PIN à 6 chiffres unique
- Le token est généré à la création de l'employé et envoyé par l'employeur via le canal de son choix (WhatsApp, SMS, email, en main propre)
- Rate limiting sur la saisie du PIN : 5 tentatives / 10 minutes par IP
- L'employé ne peut accéder qu'à ses propres pointages, son planning et ses messages — jamais à ceux d'un collègue
4.3 Clients finaux (lien partagé)
- Tokens dédiés permettant à un client final de l'employeur (ex : donneur d'ordre) de consulter le planning des sites le concernant uniquement
- Tokens révocables à tout moment par l'employeur
5Isolation multi-tenant
Trackoya est une plateforme multi-tenant à isolation forte. Chaque employeur (tenant) accède exclusivement à ses propres données. L'isolation est garantie par plusieurs mécanismes :
- Filtrage SQL systématique : toutes les requêtes lisant ou modifiant des données utilisateur incluent une clause
WHERE employer_id = $1 liée au tenant authentifié. Aucune requête ne retourne de données sans filtre tenant.
- Vérification d'appartenance sur chaque opération : avant toute lecture/modification d'une ressource (employé, site, client, planning), l'application vérifie que la ressource appartient bien au tenant authentifié. Toute tentative d'accès croisé retourne une erreur 404.
- Tokens scopés : les tokens d'accès partagés (employé, client) ne donnent accès qu'à un périmètre strictement limité.
- Audit interne : la base de code a été auditée pour détecter toute requête sans filtre tenant. Aucune fuite cross-tenant n'a été identifiée.
Garantie pratique : aucun employeur ne peut, en aucune circonstance, accéder aux données d'un autre employeur — ni en bidouillant les URLs, ni en manipulant les paramètres, ni en interceptant un autre token.
6Données personnelles & RGPD
6.1 Données collectées
| Catégorie | Données | Finalité |
| Identité | Nom, prénom, email, téléphone | Authentification, communication |
| Localisation | Coordonnées GPS au moment du pointage | Vérification de présence sur site |
| Photos | Photo de profil employé (optionnelle) | Identification visuelle |
| Heures travaillées | Horodatage des arrivées/départs | Calcul de paie, reporting |
| Rapports d'incidents | Texte, photos, géolocalisation | Main courante professionnelle |
6.2 Localisation GPS — collecte limitée
Trackoya n'est PAS une application de surveillance. La position GPS d'un employé est capturée UNIQUEMENT au moment précis où il tape volontairement « Arrivée » ou « Départ ». Aucun suivi en arrière-plan, aucune localisation continue, aucune historisation des déplacements.
6.3 Droits des personnes (RGPD)
- Droit d'accès : chaque employé peut consulter dans son app toutes les données enregistrées le concernant
- Droit de rectification : par demande à l'employeur (responsable du traitement) ou à contact@trackoya.com
- Droit à l'effacement : suppression du compte client → effacement des données personnelles sous 30 jours
- Droit à la portabilité : export complet des données (JSON / Excel) sur demande
- Droit d'opposition / limitation : modalités décrites dans la Politique de confidentialité
6.4 Durée de conservation
Les données personnelles sont conservées tant que le compte client est actif. À la résiliation, elles sont conservées 30 jours maximum avant suppression définitive, sauf obligation légale de conservation prolongée (ex : durée légale en droit du travail).
7Sauvegardes & continuité
- Sauvegardes quotidiennes automatisées de la base de données PostgreSQL
- Chiffrement des sauvegardes (AES-256, conservées sur infrastructure OVH France)
- Rétention : 30 jours pour les sauvegardes incrémentales, 90 jours pour les sauvegardes hebdomadaires complètes
- Test de restauration trimestriel pour vérifier l'intégrité des sauvegardes
- RPO (Recovery Point Objective) : maximum 24 heures
- RTO (Recovery Time Objective) : maximum 4 heures en cas d incident majeur
- Page de statut publique en temps réel : status.trackoya.com — disponibilité des services, historique des incidents sur 90 jours, abonnement aux notifications
8Sécurité applicative
- Validation stricte des entrées : tous les paramètres reçus côté serveur sont validés (type, format, longueur) avant traitement
- Protection contre l'injection SQL : utilisation systématique de requêtes paramétrées (prepared statements). Aucune concaténation SQL dynamique.
- Protection XSS : encodage HTML systématique des données affichées, Content Security Policy stricte
- Protection CSRF : tokens JWT en header Authorization (non-cookies, immune à CSRF)
- Headers de sécurité : HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy
- Rate limiting applicatif global (500 req / 15 min) et spécifique sur les endpoints sensibles
- Audit de code : revue régulière du code source pour détecter les vulnérabilités
9Sécurité opérationnelle
- Accès serveur restreint par clés SSH uniquement (pas de mot de passe), connexions tracées
- Mises à jour régulières du système d'exploitation et des dépendances applicatives
- Surveillance 24/7 de l'état des services et des certificats TLS
- Isolation des environnements production / pré-production
- Pas d'accès direct à la base de données depuis l'extérieur (réseau privé OVH)
10Réponse aux incidents
En cas de violation de données personnelles susceptible d'engendrer un risque pour les droits et libertés des personnes physiques, Trackoya s'engage à :
- Notifier le client (responsable du traitement) dans les 72 heures suivant la détection
- Fournir une description de la nature de la violation, des catégories de données concernées et du nombre de personnes affectées
- Détailler les mesures prises pour remédier à l'incident et atténuer les conséquences
- Apporter son assistance au client pour ses propres notifications réglementaires (CNIL) et aux personnes concernées
11Sous-traitants ultérieurs
Trackoya fait appel aux sous-traitants suivants pour la fourniture du service. La liste complète et leurs garanties contractuelles sont détaillées dans le DPA (article 6).
| Sous-traitant | Rôle | Localisation |
| OVHcloud SAS | Hébergement (serveurs, base de données, sauvegardes) | 🇫🇷 France |
| Stripe Payments Europe Ltd. | Traitement des paiements clients | 🇮🇪 Irlande (UE) |
| Apple Inc. | Distribution app iOS via App Store | 🇺🇸 USA (DPF certifié) |
| Google LLC | Distribution app Android via Play Store | 🇺🇸 USA (DPF certifié) |
| OVH SMTP / Brevo | Envoi des emails transactionnels (OTP, alertes) | 🇫🇷/🇪🇺 France/UE |