Back to flin
flin

Historique des entités et vues temporelles dans l'admin

Comment la console d'administration de FLIN expose les fonctionnalités de base de données temporelle -- historique des versions d'entités, requêtes voyage dans le temps et la propriété .history qui rend le passé de chaque enregistrement accessible.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min flin
EN/ FR/ ES
flinadmintemporalentity-historytime-travel

La plupart des bases de données traitent les mises à jour comme des opérations destructrices. La base de données de FLIN est temporelle par conception. Chaque entité suit automatiquement son historique complet de versions. Chaque sauvegarde crée une nouvelle version. Rien n'est jamais véritablement écrasé.

La propriété .history

flintask = Todo.find(4)

{for version in task.history}
    <div class="version-row">
        <span class="version-number">v{version.version}</span>
        <span class="title">{version.title}</span>
        <span class="timestamp">{version.updated_at}</span>
    </div>
{/for}

La propriété .history retourne une liste d'instances d'entités, une par version. Chaque instance historique a tous les mêmes champs que l'enregistrement actuel, plus des métadonnées : version, valid_from et valid_to.

La session 266 a aussi corrigé une régression liée à la gestion des portées dans le moteur de rendu, où les variables de portée n'étaient pas reconnues comme des valeurs côté serveur, causant des symptômes bizarres dans les sélecteurs de langue et les bascules de thème.

Les données temporelles transforment la console d'administration d'un visualiseur de données en un outil forensique. Quand un utilisateur signale que ses données ont changé de manière inattendue, le développeur peut inspecter l'historique pour voir exactement quand et à quelle valeur chaque changement s'est produit.

Le slogan de FLIN est « E flin nu » -- une phrase en Fon signifiant « Il se souvient des choses ». La propriété .history et les vues temporelles de la console en sont l'implémentation littérale.


Ceci est la partie 144 de la série « Comment nous avons construit FLIN », documentant comment un CEO à Abidjan et un CTO IA ont amené les capacités de base de données temporelle dans une console d'administration web.

Navigation de la série : - [143] Vues d'administration du stockage et de la base de données - [144] Historique des entités et vues temporelles dans l'admin (vous êtes ici) - [145] Polissage final UI/UX de la console

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

Le Step Zero ne suffisait pas : comment valider un constructeur sans valider le runtime a fait tomber toutes les sessions vocales de Déblo l’heure où nous avons livré le streaming caméra temps réel

La phase 14 a livré Déblo Eyes — streaming caméra temps réel via LiveKit vers Gemini Live native audio. Le premier deploy a fait tomber toutes les sessions vocales en production en quatre-vingt-dix secondes parce que notre Step 0 avait validé le constructeur sans exercer le runtime. Le build log de comment Déblo a eu des yeux, ce qu’un pré-vol incomplet a coûté, et quels points de polish ont été livrés ou reportés.

33 min May 20, 2026
debloclaude-opus-4.7claude-codegemini-live +25
Thales & Claude deblo

Le tiret cadratin qui a tué la production : comment un slogan marketing dans un header HTTP a fait tomber le chat de Déblo pendant 24 heures

Deux jours avant la soumission App Store, tout le produit chat de Déblo s’est cassé silencieusement. Pas de spinner, pas de toast, aucune erreur dans l’UI — juste un silence radio. L’incident de 24 heures se résumait à un seul « é » dans la valeur d’un header HTTP qui levait une UnicodeEncodeError avant qu’aucune requête vers OpenRouter ne quitte le backend. Post-mortem d’une fausse hypothèse, d’une trace Sentry, et d’un fix de six lignes qui a débloqué le lancement.

30 min May 19, 2026
debloclaude-opus-4.7claude-codeincident +19
Thales & Claude deblo

Six heures, d’une page blanche à la review Apple — Comment nous avons soumis Déblo à l’App Store, en direct

Marche à marche en direct de la soumission de Déblo à l’App Store iOS en six heures : ce que les validateurs d’Apple ont rejeté (un superscript Unicode), ce que nous avons corrigé (un Promotional Text gaspillé sur des marques tierces), et les rouages de l’ASO iOS que presque tout le monde rate.

30 min May 13, 2026
debloclaude-opus-4.7claude-codeapp-store +16