Simon G. · for the IT department

A note for the IT department

A colleague wants to use the free Simon G. tools with company data. This page says what the tools are, what they do with that data, and how you can check each statement.

In short

What they areFour static web pages, also available as one HTML file for use without a network: Stock Check, Working Capital Check, Credit Check, Decision Charter.
Server sideNone. There is no account, no upload and no database. The site serves files and nothing else.
Where the data goesNowhere. The file a user chooses is read by the browser and processed in the page. Results are shown on screen and can be saved by the user as files.
What enforces itA content security policy in each page that forbids every connection. The browser enforces it.
InstallationNone. No administrator rights, no browser extension, no plug-in.
Third partiesNone on the tool pages: no analytics, no fonts or scripts from other hosts, no cookies.

The policy

Each tool page on groma.ro carries this policy in the first lines of its source:

default-src 'none'; script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self' data:; worker-src 'self'; connect-src 'none'; form-action 'none'; base-uri 'none'

The offline file carries this one. It lists the SHA-256 fingerprint of every script and every style block in the file, so nothing else can run:

default-src 'none'; script-src <16 fingerprints>; style-src <8 fingerprints>; font-src data:; img-src data:; worker-src blob:; connect-src 'none'; form-action 'none'; base-uri 'none'

How to check

Read the policyOpen the page source. The policy is in the first lines.
Watch the networkOpen the developer tools, Network tab, then load a file and run a tool. After the page has loaded, no request appears.
Pull the cableOpen the offline file with the network disconnected. Everything works.
Run the self-testOpen the offline file with #selftest at the end of its address. It runs the tools on invented data and writes PASS or FAIL in the data-selftest attribute of the page.
Check the fingerprintCompare the SHA-256 of the offline file with the one on the download page: certutil -hashfile simon-g-tools.html SHA256
Read the codeThe page code, the tests and the build scripts are public: github.com/Porta-dob/simon-g-tools. The offline file is built from the published pages by offline/tools/build.mjs.

What the tools read and write

Files readExcel (.xlsx, .xlsm) and CSV, chosen by the user. Macros are not executed: the page reads the cell values with its own reader, under 200 lines, with no library.
Files writtenOnly when the user presses a button: results as CSV, decision records as JSON, a workspace file as JSON, and printing. They go to the browser's download folder.
Stored in the browserThe Decision Charter keeps its draft in the browser's local storage on that computer; its "Clear" button removes it. The other three tools store nothing.
CookiesNone.
UpdatesThe pages on the site change when we publish a new version. The offline file never changes by itself.

What is counted

Requirements, licence, contact

BrowserA current browser. Tested in Chrome and Edge. The Excel reader needs a browser version from mid-2023 or later.
LicencePage code: Apache-2.0. Calculation engine: FSL-1.1-ALv2, free for your internal use; it may not be offered as a competing product, and it becomes Apache-2.0 two years after each release.
WarrantyNone. The tools propose; a person decides.
PublisherGROMA S.R.L., Timișoara, Romania, CUI 54804217.
Security contactcontact@groma.ro. Write to us if you find a way to make a tool send data.