Privacy
What Detent does with data
Short and literal. Every line below was checked against the code, not written from a template.
No cookies, no analytics
Checked by searching app/, components/ and lib/ for a cookie or analytics library. Nothing was found.
Detent sets no cookie and loads no analytics, tracking pixel or third party script. There is no document.cookie write anywhere in the app, and no analytics package is a dependency in package.json.
What your browser stores
One key, written by the theme library this app uses.
- localStorage key
- theme
- Value
light,darkorsystem, whichever you last chose in the theme toggle.- Who reads it
- Only your browser. next-themes writes and reads this key locally and sends it nowhere.
What the server keeps, and for how long
Everything below lives in the memory of one running server process. Nothing here is a database, and nothing here survives a restart.
- Rate limiting
- The client address the request arrived with (from a proxy header, or unknown if there is none), kept only to count requests against a one minute window, up to 2,000 distinct addresses tracked before the oldest is dropped. It is never written to disk and never appears in a log line.
- The lock record
- The compiled policy, the approved calldata and the two approving officer ids for a plan in progress, held for up to fifteen minutes or until the plan is sent, whichever comes first.
- The submission ledger
- A completed send's result, kept for thirty minutes so a retry returns the same answer instead of sending twice, up to 500 entries.
What is logged
Operational lines only: what happened, not who asked.
The server logs one line per meaningful step: a plan hash, a policy id, a lock id, an error code and an HTTP status. It does not log the client address that rate limiting uses, and it does not log request bodies. The host this app runs on, like any web host, keeps its own request logs for operating the service; that logging is the platform's, not this application's code.