You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Cynitor 1.4.0
Upgrade from 1.3.0:
Bound to the network without a token, the server no longer starts. With --bind 0.0.0.0 (or any address that is not loopback), set CYNITOR_AUTH_TOKEN. To run open on purpose, add --insecure-no-auth. The packaged default binds to 127.0.0.1 and is not affected.
The API opens only the CAN adapters Cynitor knows, and slcan only on a serial port. To open any other python-can interface by name, start the server with --allow-any-interface.
Pages from other sites can no longer use the API. Of this machine's own pages, only the development server on port 5500 can; add others with CYNITOR_DEV_ORIGINS.
HTTP requests are no longer logged. Add --access-log to log them.
The .deb service runs as its own unprivileged user in a sandbox, not as root. Its data stays in /var/lib/cynitor. slcan adapters need no change: the service is in the dialout group.
New
Listen only (in the connect form, or --listen-only). Cynitor sends nothing on the bus: no node-ID, no heartbeat, no requests. You see the traffic, but no node names or registers.
--reconnect: a server started with --can reattaches its bus by itself after the bus goes away. Without it, /api/health now answers 503 while that bus is down.
Update check. The version under the sidebar links to a newer release when there is one. --no-update-check turns it off.
On the bus Cynitor is org.opencyphal.cynitor, with its own version. Before, it was named after pycyphal's example app.
Each release file is signed as built by this repository's release workflow. Check a download with gh attestation verify <file> --repo OpenCyphal-Garage/cynitor. Each file also has a .sha256, the third-party licences it bundles, and the list of package versions inside.
Fixed
Frames lost on a busy bus are counted. Past what Cynitor can decode, frames the kernel drops are counted as dropped and warned of. Before, the dashboard said none were lost. A node flooding the bus is also no longer reported offline because its heartbeats were among the drops.
Register writes:
A number is sent in the register's own type, and a value the node does not take answers 409, saying what the register holds. Before, a number of another type went out unconverted and the API said ok.
Writing a register the node does not have says so. Before, it called it a type mismatch.
Register writes and firmware updates now appear in the node's History.
A node that answers the register list only partly fails in seconds, with the reason.
Service calls wait the full 5 s. A node that does not answer gives 504, and one that went offline 409.
The live view follows a reconnect. A dashboard left open across a disconnect and connect kept showing nothing.
Times are shown in your own timezone. Before, a browser in another timezone than the server read "last seen" hours o
A node's card shows its own messages only. On a subject several nodes publish, it showed another node's until its ow
A full disk:
A database that cannot be written is shown in the dashboard and its losses counted. Before, it logged 55 tracebacks a
A raw log stops alone, without ending the session.
A raw log now stops at 4 GiB, or with 512 MiB left on the disk.
Bus load on CAN FD reads "unknown" where it cannot be measured. Before, a busy CAN FD bus read 0 %.
Port lists and registers: service masks show the IDs they set, bit registers read true and false, diagnostics show their severity name, and confirmations name the device.
Demo devices and test nodes no longer leave an offline device behind after each connect or deletion.
Anonymous heartbeats are ignored. Before, each one logged an error with a traceback.
Security:
The auth token is masked in the log and compared in constant time.
The dashboard cannot be framed by another site.
Responses no longer name the server's versions or file paths.
Streams, texts and uploads are capped.
Running it: a server that cannot start exits with status 1. One started from a shell outlives that shell. The .deb tce and stops it on removal.
Download
Debian, Ubuntu:cynitor-server_1.4.0_amd64.deb (sudo dpkg -i it, then run cynitor-server)
Other Linux:cynitor-server-1.4.0-x86_64.AppImage, or the bare binary cynitor-server-1.4.0-linux-x86_64