Docs Self-hosting
Privacy and data protection
What Obscenter collects about visitors and what it does not: no cookies, no stored IP addresses, masked session replay, and the settings that matter for GDPR.
A monitoring product stores other people's data: your visitors' sessions, the error messages your code wrote, the queries your services ran. This page lists what is collected, what is not, and which settings change that. It is not legal advice, and whether you need consent depends on where you and your visitors are.
Where the data goes
Measurements go to your install and stay there. They are not sent to an advertising network, a data broker or an analytics company. On a self-hosted install, that means your server. On obscenter.site, it means the hosted service. A few things reach out from your install, and each one can be checked:
- Map tiles, only if you set
MAP_TILESto a tile server. By default the map is drawn offline. - Vulnerability data: package names and versions are looked up at OSV.dev, and CVE ids at CISA and FIRST.
- A language model, only if the install's administrator adds one, and only with the data of the organisations that switched it on. On obscenter.site the provider is named in the privacy notice. See AI reading.
- Sentry, only if you connect it.
- Webhooks, mail and workflows that you configure. On obscenter.site, the service's own mail goes through Resend.
- Google, only if Google sign-in is configured.
- The addresses you point synthetic checks, load tests and the asset audit at, and Apache and Adoptium for the load-test engine.
In the visitor's browser
- No cookies. The tag keeps a random visitor id and the current session in the site's own local storage, readable only by that site. If you identify users, the id is kept there too. Local storage is still information kept on the device, so where consent is required for analytics, it is required for this in the same way as for a cookie.
- Form values are not sent when a field changes. Only the field's selector and name are. Fields whose name or type looks like a password, card, CVV, SSN or token are skipped entirely.
- Clicked elements are described by their selector and their text or value, up to 60 characters. Set
data-mask-text="1", or give elements adata-rum-name, if clicked elements can show personal data. - Do Not Track is respected with
data-dnt="1". Whole paths can be left out withdata-ignore, and sampling reduces how much is collected. - The full page address is recorded, query string included. Keep personal data out of URLs, or leave those paths out.
IP addresses
A visitor's IP address is not stored. It is used to find a country, and to count visitors apart through a salted, shortened hash: an HMAC-SHA256 with the install's secret, cut to 16 characters. Then it is discarded. Without the install's secret the hash cannot be turned back into an address, but whoever holds the secret could; it is pseudonymous data, not anonymous. Set STORE_IP=1 to store raw addresses. Under the GDPR an IP address is personal data, so that needs a legal basis and a notice, and it follows the application's retention. Nothing in the product depends on it.
The same rule holds on the server side. Callers in traces, SSH logins and scanners are kept as a country and a salted hash, never as an address. The exception is the successful SSH logins list, which shows the address so that you can recognise your own.
Session replay
New applications record every visit (100%) until you lower it. In the browser recording:
- every input, text area and form field is masked before it leaves the browser;
rum-blockelements are left out entirely;rum-masktext is hidden;- canvas content and fonts are not collected.
Recordings are kept for seven days by default, separately from other data. Native app recordings in screenshot mode are not masked. Use wireframe mode where screens show personal data. See Session replay and privacy masking.
On the server side
- The agent records method, route with ids replaced, status and duration per request. It does not record cookies or authorization headers: header capture is off by default and uses an allowlist that never includes those.
- Request body samples are on by default for instrumented services, and masking of secret-looking fields is off by default. Review them on the Browser page.
- Log lines and exception messages are stored as your software wrote them.
Text for your privacy policy
Install → Web application → For your privacy policy writes a plain-language paragraph for your visitors from the application's own settings. It covers what is measured, the cookies question, IP handling, the values read from the page, whether replay is on, and how long everything is kept. Change replay, retention or attributes, and the text changes with them. Fill in who to contact.
The hosted service
obscenter.site runs on servers rented in the European Union. Its terms of service and privacy notice are at /terms and /privacy; the notice names the companies that process data on its behalf. Third-party licences are at /licenses. On a self-hosted install, you are the controller, and these pages are not served unless you switch them on.