What Chartstone protects against, how the architecture earns those guarantees, and the things we’re honest enough not to claim. Written for engineers and admins doing diligence before installing.
Chartstone is a desktop app, not a SaaS. Your NetSuite session
lives in a sandboxed Electron browser on your machine. A small
HTTP server, also on your machine, exposes endpoints (SuiteQL,
saved searches, RESTlet calls, schemas) bound to
127.0.0.1 behind a bearer token. Local clients
(your scripts, your AI agent, Excel, curl) talk to that server.
NetSuite responses go straight from the embedded browser to
the calling client and never leave your computer through
Chartstone.
*.netsuite.com. Chartstone never reads or
transmits the cookie value.
safeStorage when available, fallback file mode
0600 on disk.
Chartstone makes outbound HTTPS requests on its own behalf in exactly three places. Everything else is your NetSuite session talking to NetSuite.
chartstone.io/verify/. The response is a yes/no
plus the email on file. Nothing about your NetSuite account
is in the request.
chartstone.io/announcements/ at launch to show
release notes and important notices. The request includes
no identifiers.
127.0.0.1. It is not reachable from your LAN,
VPN, or the public internet. A coworker on the same Wi-Fi
cannot connect to it.
crypto.timingSafeEqual — no
short-circuit on length mismatches.
buy.stripe.com); we receive only the customer
and subscription IDs and the billing email via webhook.
Stripe-Signature HMAC against our shared
secret with a constant-time comparison; replays are blocked
by an event-ID idempotency table.
cs_live_ + 32 lowercase hex chars). Stored in
the customer-keys table on chartstone.io, paired only with
the customer ID, subscription ID, and email. The app stores
the key in your OS keychain, not in plaintext alongside
other settings.
We’d rather be specific about gaps than oversell. As of launch:
/script endpoint. It runs with the
permissions of your NetSuite role. If your role can delete
records, scripts you write can delete records. Treat
/script like a SuiteScript debugger session,
not like a guarded API.
If you find a security issue — in the app, the local server, the chartstone.io endpoints, or the install pipeline — please email tim@suitestep.com with details and, if possible, a reproducer. Do not file a public GitHub issue. We’ll acknowledge within one business day, ship a fix as quickly as the severity warrants, and credit you in the release notes if you’d like.
We don’t currently run a paid bug bounty, but a real finding will get a real thank-you and, where applicable, a comp Pro license.
More questions? See the FAQ, read the terms and privacy pages, or email tim@suitestep.com.