Glossaire
Cette fiche rassemble, par ordre alphabétique, les termes techniques et fonctionnels employés dans le reste de la documentation. Chaque entrée renvoie vers la fiche qui en détaille le fonctionnement.
Advisory lock
Verrou applicatif au niveau de PostgreSQL, utilisé pour garantir qu'une opération sensible ne s'exécute qu'une seule fois même en cas de requêtes concurrentes — par exemple la création du tout premier administrateur via l'assistant de configuration. Voir Configuration initiale.
Assistant (wizard)
Parcours guidé en plusieurs étapes numérotées, par opposition à un formulaire unique. TimePick en propose deux : l'assistant de configuration initiale (/setup), qui crée le premier administrateur, et l'assistant Coolify qui connecte le dépôt GitHub lors du déploiement. Voir Configuration initiale.
Base de données vierge
Base PostgreSQL nouvellement créée, sans aucune table applicative. Le bootstrap (prepare-db) détecte cet état et initialise le schéma de base avant l'application des migrations ; il est sans effet si la base contient déjà des tables. Voir Installation en production (Docker).
Brouillon / publié
Les deux états du cycle de vie d'un événement : brouillon (invisible pour les membres, état par défaut à la création) et publié (visible et réservable par les membres invités). Un événement dupliqué repart toujours en brouillon. Voir Concepts et vocabulaire.
Capacité
Nombre maximal de membres pouvant réserver un créneau donné, réglé individuellement pour chaque créneau. Une fois la capacité atteinte, les nouvelles tentatives de réservation sont refusées. Voir Concepts et vocabulaire.
Codes de secours
Jeu de codes à usage unique réservé aux administrateurs, pour se reconnecter sans accès à leur messagerie. Générés par lot de 8, affichés une seule fois à l'écran, jamais envoyés par email, et stockés hachés (bcrypt) en base. Voir Sécurité.
Créneau
Plage horaire à l'intérieur d'un événement, sur laquelle les membres invités peuvent réserver leur participation dans la limite de sa capacité. Un créneau annulé disparaît du calendrier actif mais reste visible dans l'historique. Voir Concepts et vocabulaire.
Dry-run
Mode d'aperçu sans écriture en base, utilisé par l'import CSV de membres : le rapport (créations, mises à jour, erreurs) est calculé et affiché avant toute confirmation, sans modifier la base tant que l'import réel n'est pas validé. Voir Utilisateurs.
Enveloppe {data}
Convention de format des réponses JSON de l'API : le contenu utile d'une réponse réussie est toujours placé sous une clé data, par exemple { "data": { "message": "..." } }, quel que soit l'endpoint. Voir Référence API.
Événement
Conteneur principal de TimePick : une opération à couvrir par les membres, regroupant des créneaux, une liste de membres invités et, éventuellement, un modèle d'email dédié. Voir Concepts et vocabulaire.
Identité visuelle
Réglage unique par instance (logo, couleur des boutons, police, arrondi) appliqué à l'ensemble des emails sortants, distinct du contenu (texte) de chaque modèle d'email. Voir Identité visuelle des emails.
Invitation
Email contenant un magic link, envoyé à un membre pour lui donner accès à un événement. Chaque invitation est suivie individuellement (envoyée, cliquée, échec) et peut être relancée, individuellement ou en masse. Voir Concepts et vocabulaire.
Lien bootstrap (lien d'amorçage)
Cas particulier du magic link utilisé une seule fois, à l'installation, pour créer le tout premier compte administrateur de l'instance via l'assistant de configuration. Voir Configuration initiale.
Magic link
Lien de connexion à usage limité dans le temps, envoyé par email sur demande. TimePick n'utilise aucun mot de passe classique : la connexion se fait exclusivement par ce mécanisme. Sa durée de validité (TTL) est configurable séparément pour les administrateurs et pour les membres. Voir Concepts et vocabulaire.
MailHog
Intercepteur d'emails local utilisé en développement : il capture les emails envoyés par l'application sans les délivrer réellement, consultables dans une interface web dédiée. Utilisé automatiquement en repli si aucun SMTP réel n'est configuré, hors production. Voir Prérequis.
Migration
Script SQL versionné qui fait évoluer le schéma de la base de données. La politique du projet est append-only et forward-only : aucune migration déjà appliquée n'est modifiée, et aucun rollback automatique n'est fourni. Voir Mettre à jour une instance.
Mode consultatif
État d'un événement publié dont la date d'ouverture des inscriptions n'est pas encore atteinte : la page publique affiche la description mais aucun créneau, avec un message invitant à revenir une fois les inscriptions ouvertes. Voir Concepts et vocabulaire.
MJML
Langage de mise en page utilisé pour composer le contenu des emails, pensé pour produire du HTML compatible avec la majorité des clients de messagerie. Le serveur le convertit en HTML au moment de l'envoi. Voir Vue d'ensemble de l'architecture.
Monorepo
Organisation du dépôt de code en un seul dépôt Git contenant plusieurs paquets npm reliés entre eux (client, server, shared). npm install s'exécute uniquement à la racine du projet, jamais dans un paquet isolé. Voir Vue d'ensemble de l'architecture.
Provisionnement SMTP
Copie ponctuelle (« one-shot ») des variables d'environnement SMTP_* dans la base de données, au tout premier démarrage d'un conteneur sans configuration SMTP déjà présente. Une fois provisionnée, la configuration se gère exclusivement dans l'application. Voir Variables d'environnement.
Rate limiting (limitation de débit)
Restriction, indépendante de toute configuration, du nombre de requêtes acceptées sur certains endpoints sensibles (connexion de secours, renvoi d'invitation, régénération des codes de secours…) pour limiter les abus. Ces limites ne sont pas ajustables depuis l'interface. Voir Sécurité.
Réservation atomique
Garantie qu'un seul membre obtient la dernière place disponible d'un créneau même si plusieurs réservations arrivent au même instant, grâce à un verrouillage côté serveur au moment de l'écriture. Aucun surbooking n'est possible. Voir Concepts et vocabulaire.
Seed
Script (npm run seed) qui charge un jeu de comptes fictifs dans la table users à des fins de démonstration ou de test. Il purge cette table avant de la re-remplir, refuse de s'exécuter si NODE_ENV=production, et ne crée ni événement ni créneau. Voir Installation locale.
Session
Période d'accès active après une connexion réussie (magic link ou code de secours), matérialisée par un jeton signé (JWT_SECRET) et limitée dans le temps par son propre TTL, distinct de celui du magic link qui l'a ouverte. Voir Paramètres in-app.
Shell part
Partie d'enveloppe partagée des emails (en-tête, corps, pied de page), dont le contenu suit une cascade de personnalisation (marque → modèle → événement). Distincte de l'identité visuelle, qui reste un réglage unique d'instance (logo, couleurs, police). Voir Éditeur d'emails.
SMTP
Protocole standard d'envoi d'emails, utilisé par TimePick pour distribuer les emails composés en MJML vers un serveur d'envoi — fournisseur tiers en production, ou MailHog en développement. Voir Fournisseurs SMTP.
Soft-delete (suppression douce)
Suppression qui n'efface pas réellement une donnée mais la marque comme retirée, par exemple un créneau annulé : elle disparaît des vues actives mais reste consultable dans l'historique. Voir Concepts et vocabulaire.
TTL
« Time To Live », durée de vie d'un élément avant expiration automatique. Liens de connexion (administrateur, membre) et sessions ont chacun leur propre TTL, réglable en minutes, heures ou jours depuis l'écran Paramètres. Voir Paramètres in-app.
Volume persistant
Espace de stockage Docker conservé d'un déploiement à l'autre, utilisé par TimePick pour les fichiers uploadés (images des emails) afin qu'ils ne soient pas perdus à chaque redéploiement du conteneur. Voir Installation en production (Docker).