SSE Tester

2 min de lecture

SSE Tester

Le SSE Tester est un outil pour navigateur en fichier unique situé dans tools/test-sse. Il permet de s’abonner à un nombre quelconque de canaux PostgreSQL NOTIFY via une connexion Server-Sent Events en direct et d’observer les événements en temps réel.

Fonctionnalités

  • Abonnements multi-canaux — ajoutez ou retirez des canaux sous forme de tags avant de vous connecter. Tous les canaux sont transmis comme paramètre de requête ?channels= séparé par des virgules.
  • Toutes les méthodes d’authentification — l’onglet Password utilise HTTP Basic Auth (identifiants directs, sans JWT nécessaire) ; l’onglet Bearer Token accepte un JWT ou un token d’API.
  • Flux en direct — utilise la Fetch Streams API avec un AbortController pour une déconnexion propre. Les lignes SSE sont analysées manuellement afin que les champs event:, data: et heartbeat (:) soient tous correctement gérés.
  • Coloration syntaxique JSON — les payloads de données qui sont du JSON valide sont formatés avec coloration syntaxique.
  • Paramètres persistants — URL de l’API, préfixe, base de données, identifiant et liste de canaux sont sauvegardés dans localStorage.

Authentification

L’outil vérifie les identifiants avant d’afficher le panneau d’abonnement. Cliquer sur Verify & Continue appelle capabilities avec l’en-tête choisi — si PgArachne renvoie une réponse réussie, le panneau d’abonnement se déverrouille.

  • Onglet Password — envoie Authorization: Basic <base64(utilisateur:mot_de_passe)>. L’utilisateur de base de données doit avoir GRANT EXECUTE sur les fonctions cibles ainsi que l’accès à l’endpoint SSE ; aucun GRANT <rôle> TO pgarachne n’est nécessaire.
  • Onglet Bearer Token — envoie Authorization: Bearer <token>. Collez un JWT (obtenu via le JWT Getter) ou un token d’API longue durée.
Activation : Définissez STATIC_FILES_PATH sur tools/test-sse et visitez http://localhost:8080. Vous pouvez aussi ouvrir index.html directement dans le navigateur — toutes les fonctionnalités marchent sans serveur local.