Hello,
Voici une nouvelle intégration externe qui sera disponible sous peu sur le store.
Elle permettra de supervisez les métriques système, volumes, états SMART des disques et sauvegardes d’un NAS Synology
Édit : Fait avec codex
Hello,
Voici une nouvelle intégration externe qui sera disponible sous peu sur le store.
Elle permettra de supervisez les métriques système, volumes, états SMART des disques et sauvegardes d’un NAS Synology
Édit : Fait avec codex
J’ai fais passer claude pour verifier ce que codex avait fait et voici son retour :
Robustesse
Timeout sur chaque requête DSM (AbortSignal.timeout, 20 s par défaut, injectable via requestTimeoutMs). Message dédié « Synology DSM did not answer within 20s » — un NAS qui accepte la connexion sans répondre ne gèle plus inFlightRefresh ni tous les polls suivants. Erreur de configuration remontée à l'UI Gladys : la construction de la flotte est désormais dans le try, l'ancienne connexion est fermée dans tous les cas, et un ConfigValidationError (nouvelle classe dans src/config.js) est signalé sans planifier de retry — seule une nouvelle configuration peut le corriger. Le token MFA n'est plus bloquant : lecture et écriture de /data encapsulées, un EACCES/EROFS produit un logger.warn au lieu de faire échouer un login que DSM a pourtant accepté. Login coalescé (loginPromise + ensureSession(previousSid)) : une session expirée pendant un snapshot déclenche une seule authentification au lieu de cinq, et un appel concurrent n'écrase plus une session fraîche.Justesse des données
healthState() unifié pour volumes et disques : seuls les statuts explicitement sains ou explicitement en panne publient 1/0. Un état de maintenance (expanding, background_scrubbing, repairing, SMART non supporté) ne publie rien et conserve la valeur précédente — plus de fausse alerte, ni de faux « tout va bien ». Pannes partielles visibles : lastErrors devient lastFailures ({ url, error }), et le runtime transforme ça en statut connecté + message nommant le NAS en défaut (1 NAS Synology injoignable : https://nas2 (…)). L'action « Tester la connexion » liste également les NAS injoignables.Mineur
Tolérance de 5 % sur le throttle (PUBLISH_THROTTLE_RATIO) : un timer qui se déclenche quelques ms en avance ne fait plus sauter un cycle entier. src/runtime.js : toute l'orchestration extraite d'index.js (qui ne fait plus que le câblage SDK), avec serviceFactory, backoff et scheduler injectables → test/runtime.test.js couvre config invalide, retry, statut dégradé, timers, arrêt propre et action de test. CI en matrice Node 20 + 24 : le plancher déclaré dans engines est maintenant réellement vérifié, en plus de la version de l'image Docker. Température par disque (disk.temp), nouvelle feature DEVICE_TEMPERATURE_SENSOR. Débit réseau et uptime laissés de côté comme demandé — au passage, deux tests existants verrouillent explicitement leur absence, c'était bien un choix assumé.Bonus repéré au passage : le message de test de connexion affichait « DSM DSM 7.2.2 » (le firmware_ver de DSM contient déjà « DSM »). Corrigé via un helper dsmLabel().
Tout a été corrigé dans la version 1.0.3
Dans codex, tu avais choisi un modèle en particulier ?
J’avais choisi 5.6 sol élevé