Se rendre au contenu

SQLPage 0.45.0 est sorti

Gestion native des envois de mails
29 juillet 2026 par
SAS MIROUNGA, Christophe CHAUVET

SQLPage 0.45.0 : Une nouvelle version riche en fonctionnalités


Qu’est-ce que SQLPage ?

SQLPage est un outil innovant qui transforme vos requêtes SQL en interfaces web. Il permet de créer des applications web rapidement et entièrement en SQL, sans avoir besoin de maîtriser des frameworks frontend ou backend traditionnels. Que vous soyez un développeur, un analyste de données ou un administrateur de base de données, SQLPage vous offre une manière intuitive et puissante de construire des interfaces dynamiques à partir de vos données.

Avec SQLPage, vous pouvez :

  • Concevoir des applications web en utilisant uniquement du SQL.

  • Déployer des solutions pour Windows, macOS ou Linux, ou même tester en ligne directement depuis votre navigateur.

  • Étendre les fonctionnalités grâce à des appels à des fonctions intégrées comme l’envoi d’e-mails, la gestion de fichiers, ou l’exécution de requêtes dynamiques.

Les nouveautés de la version 0.45.0

La version 0.45.0 de SQLPage, sortie le 21 juillet 2026, introduit des améliorations majeures et des fonctionnalités attendues par la communauté. Voici les principales évolutions :

Envoi d’e-mails directement depuis SQLPage

SQLPage permet désormais d’envoyer des e-mails depuis vos requêtes SQL. Il suffit de :

  • Configurer les informations de votre serveur SMTP dans le fichier de configuration de SQLPage.

  • Utiliser la fonction sqlpage.send_mail avec un message au format JSON.

Fonctionnalités clés :

  • Prise en charge de multiples destinataires (champs to et cc).

  • Ajout d’adresses de réponse (reply-to).

  • Possibilité de joindre des pièces jointes via des URL de données (data-URL), avec une limite de taille configurable.

  • Les mots de passe SMTP sont masqués dans les journaux de démarrage pour une meilleure sécurité.

Exemple d’utilisation :

SELECT sqlpage.send_mail(
    json_object(
        'to', 'utilisateur@example.com',
        'subject', 'Nouvelle notification',
        'body', 'Bonjour, voici votre notification.'
    )
) AS status;

Optimisation des builds : plus rapides et plus légers

Les binaires de SQLPage sont désormais plus petits et plus performants grâce à :

  • La suppression des fonctionnalités inutilisées dans les dépendances.

  • L’utilisation du runtime HTTP maintenu pour AWS Lambda.

  • L’élimination des macros SQLx, parseurs de configuration, et autres dépendances non essentielles.

Simplification de la gestion des configurations

SQLPage ne charge plus que les formats de configuration documentés : JSON, JSON5, TOML et YAML. Les formats non documentés comme INI et RON ne sont plus pris en charge. Si vous utilisiez ces formats, il est recommandé de migrer vers un format supporté avant de mettre à jour.

Composition des fonctions SQLPage avec les résultats de la base de données

Une avancée majeure : les fonctions SQLPage peuvent désormais être combinées avec les résultats de requêtes SQL. Cela permet des schémas plus flexibles, comme :

  • L’évaluation par ligne via des parenthèses, des concaténations, COALESCE, ou des constructeurs JSON.

  • L’exécution conditionnelle de fonctions en fonction des données de la base.

Exemples concrets :

Récupération de valeurs manquantes en cache

SELECT
    id,
    COALESCE(cached_response, sqlpage.fetch(api_url)) AS response
FROM integrations;

Ici, sqlpage.fetch n’est appelé que pour les lignes où cached_response est NULL.

Rendu dynamique de composants SQL

SELECT
    'dynamic' AS component,
    sqlpage.run_sql('item.sql', json_object('id', id)) AS properties
FROM items;

Exécution conditionnelle via des requêtes scalaires

SET refresh_result = (
    SELECT sqlpage.fetch(refresh_url)
    FROM cache_entries
    WHERE cache_key = $key AND expires_at < CURRENT_TIMESTAMP
);

Remarques importantes pour la mise à jour :

  • Les appels à sqlpage.* avec uniquement des constantes ou des variables de requête s’exécutent désormais une fois par ligne retournée (et non plus une seule fois pour toute la requête).

    Exemple : SELECT id, sqlpage.fetch($url) AS body FROM jobs effectue désormais une requête HTTP par ligne (au lieu d’une seule requête réutilisée).

    Solution : Stockez d’abord le résultat dans une variable avec SET body = sqlpage.fetch($url);, puis sélectionnez $body.

  • SELECT id, sqlpage.random_string(8) AS token FROM invitations génère désormais un token unique par invitation (au lieu de répéter le même token).

    Solution : Utilisez SET token = sqlpage.random_string(8); pour un token partagé.

  • Une fonction sélectionnée n’est plus appelée si la requête ne retourne aucune ligne. Déplacez l’appel dans une instruction SET séparée si nécessaire.

  • Les valeurs calculées par SQLPage ne sont plus disponibles lors des opérations DISTINCT, de filtrage, de regroupement ou de tri par la base de données. Les requêtes utilisant ces opérations avec des projections calculées retourneront désormais une erreur claire.

  • SET x = (SELECT ...) a désormais un comportement explicite de requête scalaire :

    • 0 ligne → x est défini à NULL.

    • 1 colonne de sortie requise (erreur sinon).

    • Plusieurs lignes → comportement dépendant de la base de données (SQLite utilise la première ligne, les autres bases retournent une erreur).

Journaux d’accès redirigés vers stdout

Les logs d’accès (une ligne par requête complétée) sont désormais écrits sur stdout avec la cible sqlpage::access, conformément aux conventions des serveurs d’applications et des conteneurs. Les logs de diagnostic, avertissements et erreurs internes restent sur stderr.

Action requise :

Si votre filtre LOG_LEVEL ou RUST_LOG est limité à une cible spécifique (ex: sqlpage::webserver::http=info), ajoutez sqlpage::access=info pour continuer à recevoir les logs de complétion des requêtes. Si votre pipeline de logs ne collecte que stderr, mettez-le à jour pour inclure stdout.

Redirections OIDC non cacheables

Les redirections d’autorisation OIDC contiennent des états à usage unique, et les redirections post-connexion définissent des cookies de session. SQLPage envoie désormais l’en-tête Cache-Control: no-store pour ces réponses, empêchant leur réutilisation par un navigateur ou un intermédiaire.

Comment mettre à jour ?

La version 0.45.0 est disponible en téléchargement pour Windows, macOS et Linux :

👉 Télécharger SQLPage v0.45.0

Vous pouvez également tester SQLPage en ligne sans installation.

Pourquoi adopter SQLPage ?

SQLPage se distingue par sa simplicité et sa puissance :

Pas besoin de JavaScript, HTML ou CSS : Tout se fait en SQL.

Rapidité de développement : Créez des interfaces web en quelques requêtes.

Flexibilité : Intégrez des appels API, envoyez des e-mails, gérez des fichiers, etc.

Portabilité : Déployez sur n’importe quelle plateforme (Windows, macOS, Linux, conteneurs, serverless).

Conclusion

La version 0.45.0 de SQLPage marque une étape importante avec des fonctionnalités avancées comme l’envoi d’e-mails, une meilleure intégration avec les bases de données, et des optimisations de performance. Que vous soyez un utilisateur existant ou nouveau, cette mise à jour offre des outils plus puissants et plus flexibles pour construire des applications web en SQL.

Essayez-la dès aujourd’hui et explorez les nouvelles possibilités !

SAS MIROUNGA, Christophe CHAUVET 29 juillet 2026
Partager cet article
Étiquettes
Archive
Sortie de Winbox 4.3
Avec le support de Windows arm64