Privacy and crash reports
Apart from the databases you connect to, Selekta talks to the network for three things: update checks, crash reports if you turn them on, and map tiles when you view geometry on a basemap. Your connections, scripts and history stay on your Mac, and passwords stay in the macOS Keychain.
What leaves your Mac
| What | Where it goes | When | How to stop it |
|---|---|---|---|
| Your queries and their results | The database servers you configure, directly or through your SSH tunnel or VPN | When you connect and run SQL | Disconnect |
| Update check, which also counts how many people use Selekta | selekta.kreasimaju.id |
At start if the last check is over 6 hours old, then every 6 hours, and when you check by hand | Turn off Check for updates in Settings › General |
| Update download | selekta.kreasimaju.id |
Only after you click Download | Do not click it |
| Crash reports | bugsink.kreasimaju.id, Selekta's own server |
On an unexpected error, only if you turned reporting on | Off by default; turn off Send crash reports in Settings › Security |
| Map tiles | The tile server in Settings › Map, by default tile.openstreetmap.org |
When a map with a basemap is on screen | Turn off Show basemap in Settings › Map |
Selekta sends no statistics about what you do in the app: no SQL, table names, hosts or feature use.
Update checks
An update check fetches a small version file from selekta.kreasimaju.id. It carries nothing about your databases. From Selekta 0.2.0 it sends:
- the Selekta version and whether your Mac is Apple silicon or Intel;
- a random install ID, created on your Mac the first time Selekta checks. It is not derived from your name, email, Mac or network, and it lets us count each install once per day instead of once per check.
From the request, the server records which country and city it came from, as Cloudflare reports them. Your IP address is not stored. These counts are how we know how many people use Selekta and where, and they are never sold or shared. Turning off Check for updates stops them too. Nothing downloads until you agree, and a downloaded update is installed only if its signature matches the key built into Selekta. See Install.
The download buttons on this website count downloads per day, file and country the same way, without storing IP addresses.
Crash reports
Crash reports are off by default. You turn them on with Send crash reports in Settings › Security, and turning them off stops reporting at once.
When reporting is on, two kinds of errors are reported: a crash in the app's core, and an uncaught error in the interface (at most 10 per session). A report contains:
- the error type and its message, after scrubbing
- the stack trace, which shows where in Selekta's code the error happened
- the Selekta version and basic system context such as the macOS version
Scrubbing on your Mac
Every report is cleaned on your Mac before it is sent. Selekta removes:
- SQL: everything from a statement keyword such as SELECT, INSERT, UPDATE or DELETE onwards becomes
<sql> - quoted values and quoted identifiers, so table and column names in
"…",`…`or[…]are blanked - host names, IP addresses, URLs and e-mail addresses, replaced with
<host>,<ip>,<url>and<email> - your user name in file paths, so
/Users/<name>/…becomes~/… - the machine name, user details, request data, breadcrumbs of earlier activity and the local variables in each stack frame
For example, an error like relation "customers" does not exist on db.internal.example:5432 is sent as relation "…" does not exist on <host>.
Passwords and the Keychain
Database passwords, SSH passwords and key passphrases, and VPN passwords are stored only in the macOS Keychain, under the service id.kreasimaju.selekta. Saved connection settings keep only a reference to the keychain item, never the password. A password typed into a connection URL also goes to the Keychain.
If you turn off Save password for a connection, Selekta asks for the password each time you connect. Deleting a connection also removes its keychain items. Copy URL without password in the navigator gives you a connection URL that is safe to paste into a chat or ticket.
When you trust an SSH host key, it is added to ~/.ssh/known_hosts, and you are asked again only if the key changes.
What stays on your Mac
Everything else Selekta keeps is local, in ~/Library/Application Support/id.kreasimaju.selekta:
app.db, a SQLite file with your saved connections (without passwords), query history and settingsscripts/, your saved SQL scripts as.sqlfiles, one folder per connection
Query history never leaves your Mac. Clear history… in Settings › Security deletes all of it.
Map tiles
When you view geometry on a map with Show basemap on, the map loads tile images from the tile server in Settings › Map. Each tile request tells that server which area and zoom level you are looking at, and your IP address. Your geometry data is never sent; it is drawn locally on top of the tiles.
No tiles are requested when Show basemap is off, when your Mac is offline, or when the data has no geographic coordinate system (SRID 0 or one Selekta cannot place on the world map); those are drawn on a plain grid. To keep map views inside your network, set a self-hosted tile server. See Maps.