La gestion du temps
01Pourquoi c'est une fonctionnalité, pas un détail #sec_fe499f4b
Une campagne de certification est faite d'engagements datés : une échéance à tenir, une fenêtre pour contester, une date de certification qui fait foi. Dès qu'un client opère sur plusieurs fuseaux horaires — un siège à Paris, une filiale à Tokyo, un centre de services aux Açores — la question « quel jour sommes-nous ? » cesse d'avoir une réponse unique. La plupart des outils l'ignorent : ils vivent à l'heure de leur serveur, et le client découvre un jour qu'une échéance est tombée deux heures trop tôt, ou qu'un rapport a perdu sa dernière journée.
REVIEWIT traite le temps comme une donnée de gouvernance à part entière. Chaque valeur temporelle du produit appartient à l'une de deux natures, et chacune obéit à des règles propres :
L'instant — le moment précis où quelque chose s'est produit : une décision prise, une délégation créée, un événement d'audit. Un instant est absolu ; il est enregistré en temps universel et restitué dans l'heure du lecteur.
La date civile — un jour au calendrier : l'échéance d'une campagne, la fin d'un plan, un jour férié, un cycle de sanctuaire. Une date civile n'a pas d'heure ; elle n'a de sens que dans le fuseau de celui qu'elle concerne, et elle y reste.
Toute la fonctionnalité découle de cette distinction. Une date d'échéance ne « glisse » jamais parce qu'un serveur est ailleurs ; un horodatage de preuve ne change jamais de valeur selon qui le lit — seul son affichage s'adapte.
02Le fuseau de référence : celui du client, à son niveau de gouvernance #sec_69e30f9e
Chaque valeur temporelle est évaluée dans un fuseau de référence, résolu selon une chaîne claire :
Le workspace d'abord. Le workspace est le périmètre de gouvernance déléguée : une entité pilote ses propres échéances. Une filiale de Tokyo clôture ses campagnes à l'heure de Tokyo, quelle que soit la localisation du siège ou de la plateforme.
La souscription ensuite. Si le workspace n'a pas déclaré de fuseau, celui de la souscription s'applique — le réglage que l'administrateur client définit dans ses paramètres.
Le temps universel en dernier recours — jamais l'heure du serveur, qui n'est celle de personne. Ce repli est journalisé, pour qu'une configuration incomplète soit visible de l'exploitant plutôt que subie par l'utilisateur.
Le changement de fuseau d'un workspace prend effet immédiatement, sans interruption de service : les échéances, comptes à rebours et horodatages affichés suivent le nouveau réglage dès la reconnexion des écrans.
03Ce que cela change, surface par surface #sec_a1ebd790
Campagnes et échéances
Le « J−3 » d'une campagne compte des jours du calendrier du workspace, pas des tranches de 24 heures depuis un serveur. Une campagne planifiée « pour le 28 » se lance le 28 chez le client — pas le 27 au soir parce que la plateforme est à l'est. La barre de progression « aujourd'hui », les jalons de lancement et de clôture, les rappels : tous parlent le calendrier du workspace.
La file du revieweur, multi-sites par nature
Un propriétaire de ressources peut réviser pour plusieurs workspaces à la fois — c'est un principe du produit. Sa file de travail affiche donc, côte à côte, des requêtes venues de périmètres différents : chaque ligne compte ses jours dans le fuseau de sa propre campagne. Deux requêtes voisines peuvent légitimement afficher deux « aujourd'hui » différents, parce qu'il est déjà demain à Tokyo. Un retard, une échéance proche, un compte à rebours : tout est vrai ligne par ligne.
La date de certification : un acte, une seule date
Quand une requête est certifiée, la date inscrite est celle du jour dans le fuseau du workspace qui porte la campagne — jamais celle du serveur, jamais celle du fuseau personnel de celui qui clique. Deux revieweurs situés à dix fuseaux d'écart qui certifient la même campagne le même jour produisent la même date. C'est ce qui fait de cette date une pièce opposable : elle est reprise telle quelle dans les dossiers de certification et les preuves.
La piste d'audit : l'instant exact, lisible localement
Chaque événement d'audit est enregistré à l'instant universel exact — c'est la matière de la preuve, elle ne varie jamais. À l'écran, ces instants sont restitués dans l'heure du périmètre consulté, bornes de recherche comprises : une recherche « du 4 au 21 » couvre du début du 4 à la fin du 21, heures locales du client. Vérifié en conditions réelles : le même événement, consulté depuis trois configurations de fuseau, s'affiche à trois heures locales exactes — y compris le passage au jour suivant quand il a lieu.
Communications : publiées « le 12 », ouvertes le 12 chez chacun
Une actualité ou une notification publiée par l'éditeur « du 12 au 20 » s'ouvre au début du 12 dans le fuseau de chaque souscription , et se ferme à la fin du 20 — chez chacun. Un client d'Auckland et un client de Montréal voient la même fenêtre de publication, chacun dans son calendrier, sans qu'aucun ne la voie amputée ou décalée.
Plans et souscriptions : le service dû jusqu'au bout du dernier jour
Une date de fin de plan est un engagement de calendrier : le service est rendu jusqu'à la fin du dernier jour chez le client , période de grâce comprise. Le cycle de vie automatique des souscriptions (actif, période de grâce, archivage) applique cette règle — la même que celle affichée dans les consoles d'administration, pour qu'un client ne voie jamais son service s'arrêter avant ce que son écran lui annonce.
Cycles de gouvernance : sanctuaire, délégations, rôles
Les échéances de réexamen du sanctuaire, les périodes de délégation, les dates d'expiration des rôles sont des dates civiles du workspace. « Ajouté il y a 5 jours », « expire dans 30 jours », « réexamen dû » : tous ces comptes se font en jours du calendrier du client. Une expiration de rôle s'applique le bon jour, partout, pour tout le monde — l'écran qui l'affiche, celui qui la crée et le traitement qui la suspend lisent le même calendrier.
Rapports, graphiques et exports
Les rapports découpés « sur les 30 derniers jours » couvrent des jours civils entiers du workspace — le dernier jour inclus. Les graphiques d'activité alignent leurs barres sur ces mêmes jours, si bien que deux consultations dans la journée montrent les mêmes tranches. Les fichiers exportés portent l'heure locale du client dans leur nom : ils se classent correctement dans un dossier de téléchargements, et un pied de page de document indique une heure locale — ou une heure universelle explicitement marquée comme telle.
04Les garanties de fond #sec_5648f06c
Le stockage est en temps universel, l'affichage est local. Les instants sont conservés sous une forme absolue et sans ambiguïté ; la conversion vers l'heure du lecteur se fait au moment de l'affichage, jamais avant. Aucune valeur « déjà convertie » ne circule ni ne se stocke : c'est ce qui rend impossible la double conversion et le décalage cumulé.
Les dates civiles ne se convertissent pas. Une échéance saisie « le 28 » est conservée comme le jour 28 — elle ne devient jamais « le 27 à 22 h » quelque part. Passer un workspace d'un fuseau à un autre ne déplace aucune échéance existante.
L'heure du serveur n'intervient nulle part. Ni dans les échéances, ni dans les preuves, ni dans les affichages. La plateforme peut être hébergée dans n'importe quelle région — et déplacée — sans qu'aucune valeur métier ne change.
Les cas limites du calendrier sont couverts. Changements d'heure saisonniers, y compris les fuseaux qui basculent à minuit ; heures ambiguës d'automne et heures inexistantes de printemps : une plage de dates n'est jamais amputée ni ne déborde à cause d'une transition.
Le comportement est vérifié, pas supposé. La chaîne complète — saisie, stockage, évaluation, restitution — est couverte par des contrôles automatiques, et a été validée en application réelle sur trois configurations de fuseau simultanées (fuseau explicite, bascule à chaud, repli de configuration), preuves chiffrées à l'appui.
05En résumé #sec_5b091ae2
Le temps, dans REVIEWIT, est traité avec la même exigence que les droits d'accès : chaque valeur a un propriétaire, une nature et une règle — et l'infrastructure n'a pas voix au chapitre.