Hello,
Here is a new external integration that will soon be available on the store.
It will allow you to monitor system metrics, volumes, SMART disk status, and backups of a Synology NAS
Edit: Made with codex
Hello,
Here is a new external integration that will soon be available on the store.
It will allow you to monitor system metrics, volumes, SMART disk status, and backups of a Synology NAS
Edit: Made with codex
I had Claude check what Codex had done and here’s his feedback:
Robustness
Timeout on each DSM request (AbortSignal.timeout, 20s by default, injectable via requestTimeoutMs). Dedicated message « Synology DSM did not answer within 20s » — a NAS that accepts the connection without responding no longer freezes inFlightRefresh or all subsequent polls. Configuration error reported to the Gladys UI: the construction of the fleet is now in the try, the old connection is closed in all cases, and a ConfigValidationError (new class in src/config.js) is reported without scheduling a retry — only a new configuration can fix it. The MFA token is no longer blocking: reading and writing to /data encapsulated, an EACCES/EROFS produces a logger.warn instead of failing a login that DSM has accepted. Coalesced login (loginPromise + ensureSession(previousSid)): an expired session during a snapshot triggers a single authentication instead of five, and a concurrent call no longer overwrites a fresh session.Data Accuracy
Unified healthState() for volumes and disks: only explicitly healthy or explicitly failed statuses publish 1/0. A maintenance state (expanding, background_scrubbing, repairing, SMART not supported) publishes nothing and keeps the previous value — no more false alerts or false « all good ». Partial failures visible: lastErrors becomes lastFailures ({ url, error }), and the runtime transforms this into a connected status + message naming the NAS in default (1 Synology NAS unreachable: https://nas2 (…)). The « Test connection » action also lists the unreachable NAS.Minor
5% tolerance on the throttle (PUBLISH_THROTTLE_RATIO): a timer that triggers a few ms early no longer skips an entire cycle. src/runtime.js: all orchestration extracted from index.js (which now only does the SDK wiring), with serviceFactory, backoff, and scheduler injectable → test/runtime.test.js covers invalid config, retry, degraded status, timers, clean shutdown, and test action. CI in Node 20 + 24 matrix: the floor declared in engines is now actually verified, in addition to the Docker image version. Temperature per disk (disk.temp), new DEVICE_TEMPERATURE_SENSOR feature. Network throughput and uptime left aside as requested — incidentally, two existing tests explicitly lock their absence, it was indeed an intentional choice.Bonus noticed along the way: the connection test message displayed « DSM DSM 7.2.2 » (the firmware_ver of DSM already contains « DSM »). Fixed via a dsmLabel() helper.
Everything has been fixed in version 1.0.3
In the codex, did you choose a particular model?
I had chosen 5.6 high elevation