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

  1. Disconnect from the network. After a first visit, open, plot and export a file offline. It works.
  2. 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.
  3. 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 visitLoading a page leaves your IP address and the time with the host, as on any website.
That your computer is safeA browser extension or other software can read what a page shows.
That the file cannot leave another wayCopying, 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_loadedThe application was opened.
file_openedA 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_renderedA file's first plot was drawn.
export_csv, export_parquet, export_xlsxAn export finished, with the same size range.
parse_warning, parse_errorThe reader met a problem, with a fixed code such as TRUNCATED_SEGMENT.
batch_extract_interestThe link to Batch Extract was followed from the viewer.
file_recovered, repair_savedA damaged file was read past its damage; a repaired copy was saved, with its size range.
files_comparedTwo files were compared with the Compare tool.
app_installedThe site was installed as an application.
sample_openedA sample file was opened. A sample never counts as a file opened, a plot or an export.
batch_extract_runA 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.