Cette page décrit Calíope 1.7, la version que je construis en ce moment. La 1.6 est sur l'App Store pour Mac, iPad, iPhone, Apple Watch, Apple TV et Apple Vision Pro. Le changelog indique dans quelle version chaque fonction est arrivée.
Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.
Historique complet des requêtes exécutées avec leur durée et leur statut.
Où le trouver : Espace de travail › Outils › Journal SQL
Ouvrez le Journal SQL depuis la barre de navigation de l'espace de travail. Il a deux vues :
- Journal persistant — toutes les requêtes que vous exécutez, de cette session et des précédentes, conservées dans un fichier sur le disque : leur numéro, leur date, leur connexion, leur statut (OK/Erreur), la requête et la réponse du serveur.
- Historique de session — les requêtes exécutées par cette fenêtre, avec la durée de chacune.
Double-cliquez sur une ligne (sur iPad, touchez-la) pour voir son détail.
Dans une session Redis ou MongoDB, il s'appelle Journal des commandes et garde ce que vous exécutez : les commandes de la console et, dans MongoDB, aussi les requêtes, les écritures et les index. Ce que Calíope demande pour dessiner un écran n'est pas gardé. Il s'ouvre filtré sur la connexion de la session, chaque ligne s'affiche telle qu'elle est venue —sans coloration SQL et avec les mots de passe masqués— et il n'y a pas d'historique de session, faute d'Éditeur SQL. Dans Redis, Ouvrir dans la console porte une ligne dans la console sans l'exécuter.
Apple Vision Pro : comme sur iPad : regardez la ligne et pincez pour l'ouvrir.
Afficher uniquement les requêtes d'une session spécifique.
Où le trouver : Journal des requêtes › Sélecteur de session
Le sélecteur Session dans la barre du Journal permet de filtrer par session. À chaque démarrage de Calíope, un nouvel identifiant de session est généré, et toutes les requêtes le portent jusqu'à la fermeture. Choisissez Toutes les sessions pour voir l'historique complet ou sélectionnez une session spécifique.
Mots-clés : session, filtrer, ID, session de connexion, filtre
Filtrer les entrées du journal par texte de requête.
Où le trouver : Journal des requêtes › Recherche
Saisissez du texte dans le champ de recherche de la barre du Journal pour ne garder que les requêtes qui le contiennent. La recherche se combine avec les filtres de session, de connexion et de résultat : tous s'appliquent en même temps.
Afficher uniquement les requêtes d'un profil de connexion spécifique.
Où le trouver : Journal des requêtes › Sélecteur de connexion
Le deuxième sélecteur dans la barre du Journal filtre les entrées par profil de connexion. Choisissez le nom du serveur ou du profil dans la liste déroulante pour voir uniquement les requêtes exécutées dans ce contexte. Sélectionnez Toutes les connexions pour voir l'historique complet.
Chaque connexion apparaît sous la forme « nom (hôte:port) », ce qui sépare deux profils du même nom sur la même machine, par exemple un MySQL et un Redis. Les entrées écrites par les versions précédentes de Calíope portent « nom (hôte) », sans le port, et apparaissent comme une autre connexion.
Afficher uniquement les requêtes réussies ou celles ayant généré une erreur.
Où le trouver : Journal des requêtes › Sélecteur OK / Erreur
Le troisième sélecteur dans la barre du Journal filtre par statut d'exécution : Tous, OK (uniquement les requêtes réussies) ou Erreur (uniquement celles qui ont échoué). Combinez-le avec le filtre de session et la recherche textuelle pour cibler rapidement les entrées pertinentes.
Recharger les entrées du journal depuis le stockage local.
Où le trouver : Journal des requêtes › Bouton de rechargement
La liste se met à jour toute seule. Chaque requête enregistrée, dans cet onglet ou depuis un autre, et ce qui arrive d’iCloud s’affichent sans rien faire. Le bouton de rechargement (icône de flèche circulaire) dans la barre du Journal relit le fichier à la main.
Mots-clés : actualiser, recharger, refresh, journal, manuel
Copier le résultat d'une requête enregistrée dans le presse-papiers.
Où le trouver : Journal des requêtes › clic droit › Copier le résultat
Ouvrez le menu contextuel de n'importe quelle entrée du Journal des requêtes — clic droit sur macOS, appui long sur iPad — et sélectionnez Copier le résultat. Le résultat (texte de la réponse ou message d'erreur) est copié dans le presse-papiers sans avoir à réexécuter la requête.
Apple Vision Pro : le menu contextuel s'ouvre en regardant la ligne et en pinçant sans relâcher.
Mots-clés : copier, résultat, presse-papiers, clipboard, journal, menu contextuel
Supprimer définitivement toutes les entrées du journal SQLite.
Où le trouver : Journal des requêtes › Purger / Nettoyer
Le journal persistant est stocké dans une base de données SQLite locale (query_log.db) dans le répertoire de support de l'application. Pour tout supprimer, utilisez l'une de ces deux méthodes :
- Bouton « Effacer » (icône de corbeille) dans la barre de filtres supérieure.
- Bouton « Purger » dans la barre d'informations du fichier, en bas de la vue.
Dans les deux cas, Calíope affiche une boîte de dialogue de confirmation avant de supprimer. L'opération supprime toutes les lignes de la table executedqueries ; elle n'affecte pas l'historique de session en mémoire ni le journal d'audit DDL.
Consulter l'emplacement du fichier query_log.db et l'espace qu'il occupe.
Où le trouver : Journal des requêtes › Barre de fichier (pied)
La barre inférieure du Journal persistant affiche en permanence :
- Chemin complet du fichier query_log.db (répertoire de support de l'app).
- Taille en B, Ko, Mo ou Go selon le cas, mise à jour à chaque rechargement du journal.
Sur macOS — appuyez sur Afficher dans le Finder pour ouvrir le Finder avec le fichier sélectionné. Vous pouvez ensuite effectuer une sauvegarde manuelle ou le déplacer.
Sur iPad — appuyez sur Copier le chemin pour copier le chemin dans le presse-papiers.
Le chemin habituel sur macOS est : ~/Library/Containers/org.caliope.caliope/Data/Library/Application Support/Caliope/query_log.db
Apple Vision Pro : comme sur iPad, pincez Copier le chemin.
Partager l'historique des requêtes entre vos appareils via iCloud.
Où le trouver : Journal des requêtes › Bouton de synchronisation iCloud
L'icône de nuage dans le coin supérieur droit du Journal des requêtes contrôle la synchronisation avec iCloud CloudKit. Cette fonctionnalité est désactivée par défaut et est entièrement optionnelle.
Activer la synchronisation
Appuyez sur l'icône de nuage (contour gris) pour l'activer. Calíope vous demandera :
- Téléverser l'historique existant — téléverse toutes les entrées locales actuelles vers iCloud.
- Nouvelles entrées seulement — commence à synchroniser à partir de maintenant sans téléverser l'historique précédent.
À partir de ce moment, chaque requête exécutée est enregistrée simultanément dans la base de données locale et dans iCloud. Le champ résultat est stocké avec un maximum de 500 caractères.
Désactiver la synchronisation
Appuyez sur l'icône de nuage plein (bleu) pour la désactiver. Calíope vous demandera :
- Télécharger l'historique depuis iCloud — télécharge toutes les entrées iCloud vers l'appareil actuel.
- Non, juste désactiver — désactive la sync sans toucher aux données locales.
- Désactiver et supprimer la copie iCloud — désactive la synchronisation et supprime aussi la copie iCloud, pour tous vos appareils ; ce que chacun garde en local reste.
Les deux premières conservent la copie iCloud : vos autres appareils avec la synchronisation activée continuent de la lire.
Indicateurs d'état
Icône
Signification
Nuage gris (contour)
Sync désactivée
Nuage bleu plein
Sync active, à jour
Indicateur de chargement
Synchronisation en cours
Nuage rouge barré
Erreur de synchronisation (survolez pour voir le détail)
Rétention
La même politique de rétention configurée pour le journal local (90 jours par défaut) s'applique automatiquement aux enregistrements iCloud une fois par jour. Les deux stockages maintiennent ainsi le même horizon temporel.
Confidentialité
Les données sont stockées dans votre compte iCloud personnel (base de données privée CloudKit), invisible pour les autres utilisateurs et hors de portée de Calíope : aucun serveur à moi ne la lit. Avant l'activation, la confirmation prévient que le journal synchronisé peut contenir des informations sensibles — mots de passe écrits en SQL, données personnelles ou financières —, et tant que la synchronisation est active, le même avertissement reste en haut du journal persistant.
Que faire lorsque l'icône de nuage apparaît en rouge.
Où le trouver : Journal des requêtes › Bouton nuage rouge
Lorsque l'icône de synchronisation apparaît barrée en rouge, appuyez dessus pour voir le détail de l'erreur et les options disponibles :
- Réessayer — tente de nouveau la synchronisation. À utiliser si l'erreur était temporaire (pas de réseau, iCloud indisponible).
- Désactiver la sync — désactive la synchronisation sans télécharger de données. L'historique local n'est pas modifié.
Causes fréquentes et solutions :
Erreur
Cause
Solution
« Vous n'êtes pas connecté à iCloud »
Le compte iCloud n'est pas actif
Ouvrez Réglages Système → Compte Apple
« iCloud temporairement indisponible »
Serveurs Apple en panne ou réseau sans couverture
Attendez quelques minutes et appuyez sur Réessayer
« Restrictions sur le compte »
Contrôle parental ou MDM bloquant CloudKit
Contactez l'administrateur de votre appareil
« Impossible de vérifier l'état »
Pas de connexion Internet au démarrage
Vérifiez le réseau et appuyez sur Réessayer
Remarque : L'état du compte iCloud est vérifié automatiquement à l'ouverture de l'app. Si le problème se résout (par ex. vous vous connectez à Internet), l'icône reviendra au bleu après l'exécution de la prochaine requête.
Calíope envoie une notification lorsque la synchronisation iCloud du journal échoue silencieusement.
Où le trouver : Calíope › Réglages › Général → Notifications
Si la synchronisation iCloud de l'historique des requêtes échoue (pas de connexion, quota saturé, compte indisponible), Calíope peut vous alerter par une notification locale.
Scénarios couverts :
- Pas de connexion Internet au moment de la synchronisation.
- Quota iCloud épuisé — la notification utilise un message spécifique indiquant que le stockage est plein.
- Compte iCloud temporairement indisponible.
Activer ou désactiver :
Allez dans Réglages › Général › Notifications et utilisez le bouton Échec de synchro iCloud. Ce bouton n'apparaît que si la synchronisation iCloud est activée dans les Réglages.
Le délai entre les notifications est de 15 minutes pour éviter le spam (la sync est vérifiée à chaque requête exécutée).
Depuis le menu d’une ligne ou depuis son détail, un bouton porte l’instruction dans l’Éditeur SQL sans l’exécuter.
Où le trouver : Espace de travail › Outils › Journal SQL
Depuis le menu d’une ligne, ou depuis la feuille de détail, Ouvrir dans l'éditeur porte l’instruction dans l’Éditeur SQL sans l’exécuter. Sur le Mac, elle s’ouvre dans un nouvel onglet ; hors du Mac, l’éditeur passe au premier plan avec l’instruction à la place de ce qu’il contenait. L’historique de session fonctionne de la même façon.
Avec Redis, l’option est Ouvrir dans la console et porte la commande dans la console. Avec MongoDB, elle n’est pas proposée.
Mots-clés : ouvrir dans l’éditeur, journal, instruction, historique, console
Sur le Mac, ⌘P avec le journal persistant au premier plan imprime les lignes qui passent les filtres, chacune avec son instruction entière.
Où le trouver : Raccourci clavier : ⌘P
Sur le Mac, avec le journal persistant au premier plan, ⌘P imprime les lignes qui passent les filtres : chacune avec son numéro, sa date, sa connexion, sa réponse et l’instruction entière, sans la couper. L’historique de session ne s’imprime pas.