| os:d:consent | Browser local storage (localStorage) | .onstageaps.com | 12 months (then you are asked to make a new choice) | Stores the choices made in the cookie banner (necessary/preferences/analytics/marketing) and the date they were made. | No | No |
|---|
| os:d:cookie-consent:session-id | Browser local storage (localStorage) | .onstageaps.com | 12 months, aligned with the choice it is linked to | Anonymous identifier generated on your device to link, if you are not signed in, the choice you made in the cookie banner to the record kept on the server (no personal data, and not linkable to you until you sign in). | No | No |
|---|
| os:d:auth:session-hint | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Signals, without containing any token, that a session may exist to restore: avoids unnecessarily attempting automatic login renewal for those who have never logged in. | No | No |
|---|
| os:d:auth:remember | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers whether you chose "Keep me logged in" on login (only the toggle, no login data). | No | No |
|---|
| os:s:auth:refresh:session | Browser session storage (sessionStorage) | .onstageaps.com | No longer written as of 20/07/2026: any residual value from a previous session is read once and immediately deleted on first startup | Legacy namespace for session refresh token. As of 20/07/2026 (security fix), the refresh token remains exclusively in memory and is no longer written here: this entry exists only to automatically clear any residuals left by sessions opened before that date. | Yes | No |
|---|
| os:d:auth:refresh:persistent | Browser local storage (localStorage) | .onstageaps.com | No longer written as of 20/07/2026: any residual value from a previous session is read once and immediately deleted on first startup | Legacy namespace for session refresh token (persistent variant of 'os:s:auth:refresh:session', used when the user chose "Keep me logged in"). Same note: no longer written as of 20/07/2026. | Yes | No |
|---|
| os:d:pos:selected-edition | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers the event selected on the till device (tablet), shared among the operators who take turns at the shift. | No | No |
|---|
| os:d:barpos:catalog | Browser database (IndexedDB) | .onstageaps.com | Until the next successful read over the network, which replaces it: no automatic expiry. | Copy of the bar's price list saved on the till device, to stay readable (names and prices) when there is no network at the counter. | No | No |
|---|
| os:d:bar:catalog | Browser database (IndexedDB) | .onstageaps.com | Until the next successful read over the network, which replaces it: no automatic expiry. | Copy of the bar's public price list saved on the phone, to stay readable (names and prices) when you open "Order and pick up" without a network. | No | No |
|---|
| os:d:scan:feedback-muted | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers whether the sound and vibration that confirm a QR has been read are switched off on this device. | No | No |
|---|
| os:d:kds:muted | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers whether the audio alerts of the kitchen display (KDS) are disabled on this device. | No | No |
|---|
| os:d:kds:stand | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers the operational station (e.g. "Kitchen", "Bar") manually selected on this device for the kitchen display. | No | No |
|---|
| os:d:receipt-printer | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers which Bluetooth receipt printer you chose on this device (only its name and address), so you do not have to choose it again for every receipt. | No | No |
|---|
| os:d:orders:voice-muted | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers whether voice announcements of order status changes are disabled on this device. | No | No |
|---|
| os:d:outbox | Browser database (IndexedDB) | .onstageaps.com | Every order stays in queue until it's successfully sent to the server: then it's deleted automatically, in a few seconds. If the server permanently rejects it, it stays visible at the till until an operator deletes it after checking it. | IndexedDB database of the browser: the till and the bar use it to queue a receipt - or, at the bar, also a cash top-up of the wallet - when the connection is missing or unstable during an event, so it can be sent as soon as the network returns. In the OnStage app the content is written in encrypted form (AES-256), with a key kept by the operating system's keychain, in a separate database (named «onstage-secure»); on the website, where that keychain does not exist, it stays in the «onstage» database without its own encryption. It contains the chosen products, quantities, any line notes, the payment method and a technical identifier generated by the device. For bar receipts, and for wallet top-ups, it may also contain the member's identifier, if the operator recognised them to apply the discounted price or to top up their credit, and - for top-ups only - the amount paid: not the name, not the email, but a code that traces back to you if you have an account. For whoever manages the entrance of an event with the app, the same queue also holds the entries registered offline: the scanned QR code and, for a new registration at the door, the data of the completed form (first name, last name, email, date of birth, consents and, for a minor, the data of the person with parental responsibility) until sent. | Yes | No |
|---|
| os:d:error-report:queue | Browser database (IndexedDB) | .onstageaps.com | Up to 7 days since the last time the same error occurred, and in any case at most the 50 most recent entries: beyond these limits the oldest entry gets deleted automatically. | Browser IndexedDB database (name «onstage»): records on the device, in technical form and cleaned of any recognisable personal data (email, tax code, IBAN, session tokens masked or removed), the errors encountered by the site or the app - type of error, page or operation involved, a technical grouping code. It helps the people developing OnStage notice failures and fix them. It never contains email, name, tax code, nor the content of the requests made. | No | No |
|---|
| os:s:pwa:reload-guard | Browser session storage (sessionStorage) | .onstageaps.com | For the duration of the browser tab: disappears when you close it | Technical counter of the latest automatic page reloads made by the site itself when publishing a new version: prevents an update that fails from causing the page to reload in an infinite loop. It contains no personal data, only instants of time. | No | No |
|---|
| os:d:live-update:quarantena | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | List of app updates that have already prevented startup on this device and were rolled back automatically: it stops them being downloaded again, so the app does not get stuck in a loop of failed launches. It holds only technical version identifiers, no personal data. | No | No |
|---|
| os:d:push:revoche-in-sospeso | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | When you sign out, this device is removed from push notifications so that whoever signs in after you doesn't receive yours. If that step doesn't fully succeed (for example you're offline at the moment you sign out), a note is kept here of what's still missing, so the operation is retried the next time you open the app instead of being silently forgotten. The note contains the technical address your browser or phone uses to receive notifications, and your user identifier, and it disappears as soon as the operation succeeds. | Yes | No |
|---|
| os:d:push:nativo-attivo | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | App only: remembers that you turned on notifications on this phone, so that at startup the app keeps them connected and doesn't turn them on for people who didn't ask. It disappears when you turn them off. It contains only a yes, no data about you. | No | No |
|---|
| os:d:app-lock:enabled | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Only in the app: it remembers that you turned on the fingerprint, face or PIN lock on this phone, so the app asks for unlocking when it opens. It only contains a yes, no data about you: your fingerprint or face stay on the phone and the app never sees them. It disappears when you turn the lock off. | No | No |
|---|
| os:d:checkin:segnalazioni | Browser local storage (localStorage) | .onstageaps.com | Until whoever manages the entrance has read the notice and removed it from the list. | Only for whoever manages the entrance of an event with the app: if a person came in while the phone had no network and, when the network came back, their code turned out not to be valid (expired or revoked card, or unknown code), this keeps a note of what time they came in and what kind of problem it is, so whoever is at the door sees it and can fix it. The entry is registered anyway. It contains no names and not the content of the code. | No | No |
|---|
| os:d:station:id | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Only for whoever works at the bar till or at an event till: a random code that gives this device a name, so the till can know whether it still has receipts to send before closing. It is not data about you or about the phone: it is a number invented by the app, and it never leaves the app except to tell the till how many receipts you have queued. | No | No |
|---|
| os:d:assets:cache-refresh-commit | Browser local storage (localStorage) | .onstageaps.com | No automatic expiry (remains on the device until you clear your browser data) | Remembers which images and videos on the site have already been refreshed in your browser's technical cache (as of 10/08/2026: by comparing a technical list of files with the previous version, to update only those that have really changed instead of reloading the entire site on every visit). It contains only file paths and technical codes, no data about you. | No | No |
|---|
| os:u:cart | Browser local storage (localStorage) | .onstageaps.com | Automatically deleted on logout if you have an account; if you browse without logging in, it remains saved with no automatic expiry | The contents of your basket (chosen products, quantities, notes) for the event you are visiting. If you are signed in, a copy is also kept on our servers, linked to your account, so that you find your basket again from your other devices: clearing your browser data removes it from here, but it comes back at your next sign-in. We delete it when you delete your account. Also on our server, linked to your account (section 7) | No | No |
|---|
| os:u:orders | Browser local storage (localStorage) | .onstageaps.com | Automatically deleted on logout if you have an account; if you browse without logging in, it remains saved with no automatic expiry | Local copy of your order history (status, amount, event) to display it immediately when opening the "My orders" page before even reloading it from the server. | No | No |
|---|
| os:u:user:profile | Browser local storage (localStorage) | .onstageaps.com | Automatically deleted on logout if you have an account; if you browse without logging in, it remains saved with no automatic expiry | Your signed-in profile: name, surname, roles and whether you are old enough for age-restricted products (a yes or a no, not your date of birth). It lets you be shown as signed in as soon as the page reloads, without waiting for the network. Email, phone and date of birth are not saved on your device: they stay in the open page and are read from the server at every start. | Yes | No |
|---|
| os:s:db-console:token | Browser session storage (sessionStorage) | .onstageaps.com | For the duration of the browser tab: disappears when you close it. It can also disappear earlier: when the console session expires it is deleted immediately and a new login is required | The code of the session opened on the administration SQL console, the page reserved for whoever develops and maintains the site. The server issues it to someone who has the Developer role and is in the list allowed by the configuration, and it accompanies every statement sent. It does not concern site visitors: it is never created in a visitor's browser. | Yes | No |
|---|
| os:s:db-console:expires-at | Browser session storage (sessionStorage) | .onstageaps.com | For the duration of the browser tab: disappears when you close it; it is also deleted earlier, together with the session code, as soon as the console session expires | The instant at which the administration SQL console session expires, as declared by the server: it serves to display the countdown on the page and to close the console itself when time runs out. How long the session lasts is decided by the server configuration, not the browser and not this list. It contains only a date and time. | No | No |
|---|
| os:s:db-console:recent-queries | Browser session storage (sessionStorage) | .onstageaps.com | For the duration of the browser tab: disappears when you close it | The last five SQL statements successfully executed in the administration console, to be able to recall them from the "recent" list of the editor without rewriting them. The text of the statement is saved, never its result; if the person writing it includes personal data in it (for example an email address in a search filter), that data remains in the saved text. This also exists only in the browser of whoever administers the site. | Yes | No |
|---|
| os:s:physical-card:pending-code | Browser session storage (sessionStorage) | .onstageaps.com | For the duration of the browser tab: disappears when you close it; it is also deleted earlier, as soon as the card turns out to be linked to your account | Only if you open a physical card link (for example by scanning its QR code): the card code is kept for the lifetime of the tab, so that if you have to sign in first, the card is linked to your account without you having to enter it again. The code lets whoever presents it link the card, so it is never left in the page address. | Yes | No |
|---|
| Google Identity Services ("Continue with Google" button) | Network request to a third-party service (not a cookie of ours) | accounts.google.com | Managed by Google, not known to OnStage | It appears, loading immediately, on the login and account/event registration pages; on the member registration page it appears instead only if, after submitting the form, your email is already linked to a Google account. The button is rendered by Google inside its own iframe: opening one of those pages contacts accounts.google.com and communicates your IP address, even before clicking. According to Google's policy, accounts.google.com can set its own security/session cookies - names and duration are decided by Google, not by OnStage. | No | Yes |
|---|
| __Host-onstage_rt | Cookie | api.onstageaps.com | 30 days, renewed on every successful login. If you log in with an operational station role (till, digital kitchen/bar, merchandise desk, games, activities) the server stops accepting it after 12 hours, even if it remains saved in the browser until 30 days. In local development the same cookie is called 'onstage_rt'. | Keeps you logged in after login, so you don't have to re-enter your password on every visit: it contains the token that renews the session. Readable only by our server, not by JavaScript (HttpOnly); travels only on encrypted connection (Secure) and is never sent to other sites (SameSite=Strict). Set by the API domain (api.onstageaps.com), separate from the site you are visiting (onstageaps.com). It is deleted when you log out. | Yes | No |
|---|
| onstage_os:auth:refresh | Phone's encrypted keychain (app only: iOS Keychain / Android KeyStore) | Not a web domain: it exists only inside the OnStage app (Android; on iPhone, once available, the same applies to the system Keychain), in the phone's encrypted keychain, not on a website. | 30 days, renewed on every successful sign-in in the app. If you sign in with an operational station role (till, digital kitchen/bar, merch stand, games, activities) the server stops accepting it after 12 hours, even though the value stays stored on the phone for up to 30 days. It is deleted when you sign out of the app, or if you uninstall the app (uninstalling, however, does not revoke the session on the server: it stays valid until it expires naturally). | In the app (not on the website) the token that keeps you signed in after login is stored in the phone's encrypted operating-system keychain - Keychain on iPhone, an area protected by the Android KeyStore key on Android - instead of a browser cookie, because the app has no browser with an HttpOnly cookie available. It cannot be read by other apps installed on the phone. An unlocked phone in someone else's hands with the app already open still remains accessible under your identity: today the only way to react is to sign out of all devices using the account's "Sign out" function, which also closes that session. | Yes | No |
|---|