Security and privacy
What is promised
No byte of a measurement file, and no name from it, leaves your browser: not the values, not the names of the file, its groups, channels and properties, and nothing computed from them. The file is read in your tab by a WebAssembly module, and exports are saved by your browser. No account, no cookie, nothing to install.
How to check it yourself
- Disconnect from the network. After a first visit, open, plot and export a file offline. It works.
- Watch the Network tab of your browser's developer tools while you open a file. You will see the
site's own files and small POST requests to
/api/event, each one a counter listed below. - Read the Content Security Policy. Every page is served with
connect-src 'self': the browser refuses any connection to another site.
What is not promised
| That the host does not see your visit | Loading a page leaves your IP address and the time with the host, as on any website. |
|---|---|
| That your computer is safe | A browser extension or other software can read what a page shows. |
| That the file cannot leave another way | Copying, emailing or syncing it is up to you. |
What the server counts
A daily counter per event name, and nothing else: no IP address, no browser details, no identifier. Anything outside this list is refused.
app_loaded | The application was opened. |
|---|---|
file_opened | A file was read, with its size range (under 1 MB, 1 to 10 MB, 10 to 100 MB, 100 MB to 1 GB, over 1 GB) and whether a .tdms_index file was given. |
plot_rendered | A file's first plot was drawn. |
export_csv, export_parquet, export_xlsx | An export finished, with the same size range. |
parse_warning, parse_error | The reader met a problem, with a fixed code such as TRUNCATED_SEGMENT. |
batch_extract_interest | The link to Batch Extract was followed from the viewer. |
file_recovered, repair_saved | A damaged file was read past its damage; a repaired copy was saved, with its size range. |
files_compared | Two files were compared with the Compare tool. |
app_installed | The site was installed as an application. |
sample_opened | A sample file was opened. A sample never counts as a file opened, a plot or an export. |
batch_extract_run | A Batch Extract table was started, with the number of files as a range (1 to 5, 6 to 20, 21 to 100, over 100). |
Your browser keeps the application's files, for offline use, and your light or dark mode. Never anything from a measurement file.
Hostile files
Every length and count read from a file is checked before memory is used. The reader is tested against npTDMS on truncated and deliberately hostile files, and fuzzed with hundreds of millions of inputs. A file it cannot fully read gives a partial result and a message, never a crash.
Reporting a security issue
Write to contact@kymogram.com. You will get a reply within 7 days. Describe the issue, or build a file that shows it; please do not attach a real measurement file.