Legal
Cookies
Effective November 15, 2026 · operated by 1581455 B.C. Ltd. dba WhiteCoat Prep
1. The short version
DebriefMD sets only the cookies it needs to keep you signed in and to protect sign-in. They are strictly necessary and always on.
Optional analytics is paused. No analytics script loads and no analytics request is sent, even if you opted in before. A choice you saved earlier may still be stored in your browser, but it does nothing while collection is paused. While analytics is paused there is no cookie banner and no analytics choice to make, in Settings or on this page.
There are no advertising cookies, no social media cookies, no tracking pixels, no session replay, and no cross-site tracking. There is no mechanism in the product to add them without changing this page.
DebriefMD also keeps some things in your browser's own storage, including a copy of each recording until it has been processed. Section 4 lists all of it.
2. Analytics
DebriefMD contains code for Google Analytics, which would tell us which pages get used and where people give up. That collection is switched off in the code, whatever choice is stored in your browser.
If your browser still holds Google Analytics cookies (_ga, _ga_<property id>)
from an earlier visit, nothing in DebriefMD reads or uses them while analytics
is paused, and DebriefMD does not remove them either. You can clear them in
your browser's settings for this site.
If analytics is ever switched back on, this page will be updated first, and a choice you made under an earlier version of this page will be asked again rather than carried over. The analytics code in DebriefMD keeps analytics off until you opt in, removes identifiers and query strings from page addresses before anything is sent, and sends no name, email address, user id, preceptor, rotation, transcript or assessment content.
3. Cookies we set
Strictly necessary: always active
These are required for the application to function. Analytics choices do not affect them.
| Name | Set by | Purpose | Duration |
|---|---|---|---|
__Secure-authjs.session-token | DebriefMD | Keeps you signed in | Up to 30 days, renewed while you keep using DebriefMD; ends when you sign out |
__Host-authjs.csrf-token | DebriefMD | Protects the sign-in form against cross-site request forgery | Session |
__Secure-authjs.callback-url | DebriefMD | Returns you to the page you started from after signing in | Session |
__Host-debrief-lti-browser | DebriefMD | Only when you open DebriefMD from a connected learning-management system: ties the launch to this browser so it cannot be replayed | 5 minutes |
__Host-debrief-lti-context | DebriefMD | Only after such a launch is verified: tells DebriefMD which learning system you came from | 5 minutes |
The __Secure- and __Host- prefixes are browser-enforced protections. They stop the cookie being set or read over an insecure connection.
Google sign-in is switched off, so the cookies its sign-in handshake used are not set.
4. Browser storage we use
These are not technically cookies, but they are the same act on the same device, and someone clearing "cookies" would not find them. They are listed here for that reason.
| Key | Storage | Purpose | Duration |
|---|---|---|---|
debrief.cookie-consent.v1 | localStorage | An analytics choice, if you made one before analytics was paused, and the version of this page it was made under. Not used while analytics is paused | Until you clear site data |
debrief.cookie-banner-dismissed | sessionStorage | Records that you closed the analytics banner without deciding. Not written while analytics is paused | Until you close the tab |
debrief-known-issues-dismissed | localStorage | The reference numbers of incident notices you have dismissed on the dashboard, so a notice you closed stays closed | Until you clear site data |
debrief.epa-nudge-dismissed.v1 | localStorage | Which EPA-coverage prompts on your dashboard you dismissed, and when, so a dismissed prompt stays quiet for a while | Until you clear site data |
debrief.abandoned-sessions | localStorage | Up to 50 reference numbers of empty server records left behind when you re-tagged a recording while offline. Each is sent back to our server as a delete request the next time the recording queue runs, and forgotten once the record is gone | Until the deletion succeeds, or you clear site data |
debrief-offline → pending-recordings | IndexedDB | Each recording you finish, saved as soon as recording stops, with the preceptor, rotation, form and language you tag it with and the record of the two confirmations you gave before recording (their wording version, language and the time recording started), until it has been uploaded and processed | No automatic maximum: until your assessment is ready and DebriefMD is next open in this browser, you discard the recording, you delete your account from this browser, or you clear site data |
debrief-shell, debrief-shell-assets | Cache Storage | The offline screen and the files it needs, so you can still record with no connection | Replaced in place by each new version of the app |
debrief-assets-<version> | Cache Storage | Up to 60 app files picked up while browsing, so pages load faster | Removed when a new version of the app is installed |
debrief-setup-<version> | Cache Storage | Your preceptor, rotation and form lists, so a recording made offline can still be tagged | See "What clears when" below |
Of the localStorage and sessionStorage rows, only debrief.abandoned-sessions is ever sent to a server, and what it sends is a reference number for a record that is ours to delete. The rest stay on your device.
Recordings in your browser are source audio. They are the actual audio, before any identifier has been removed, because that happens on our servers after upload, and they can contain identifiable information. The retention periods in the Privacy Policy do not govern this copy, because they apply to our storage and this copy is on your device. There is no automatic maximum age: a recording stays until one of the events in the table happens. A successful upload does not remove it either: your browser keeps its copy until the debrief has been processed and your assessment is ready, so a failure on our side never destroys the only copy. Your browser may also evict it under storage pressure, and anyone using the device may be able to reach it. Clearing the site's data removes it permanently, and that may be the only copy. A device used outside Canada is outside our description of where data is held.
The cached lists include preceptor email addresses. They are what lets you tag an offline recording. They contain no patient information, but on a shared computer they matter.
What clears when
| Event | What DebriefMD clears in this browser | What stays |
|---|---|---|
| You sign out from Settings | The cached preceptor, rotation and form lists | Recordings waiting to be processed, so a debrief is not lost to a routine sign-out; the localStorage keys; the offline screen |
| You deactivate your account | The cached lists, as for sign-out | As for sign-out |
| You delete your account | The cached lists and every recording held in this browser | The localStorage keys; the offline screen |
| Your session expires without signing out | The cached lists, but only the next time DebriefMD tries to refresh them online and is refused | Everything else |
| A new version of the app is installed | The previous version's cached lists and app files | Recordings; the localStorage keys; the offline screen, which is updated |
Clearing depends on the browser's service worker being available; in a browser without one there is no offline cache to clear. Clearing this site's data in your browser removes everything in sections 3 and 4.
Deleting your account on our servers cannot reach a browser on another device. If you used DebriefMD on more than one device, recordings and cached lists on the others stay there until you discard them or clear that browser's site data.
No de-identified transcript, assessment, or debrief history is stored on your device. Those are fetched when you open the app and are not cached. Files you download are yours to manage, and emails are held by the recipient's mail system. Downloading a file is distinct from sharing with your program: it gives your program no access in DebriefMD. Who receives what is set out in section 11 of the Privacy Policy.
5. What DebriefMD does not do
- No advertising or retargeting of any kind.
- No social media pixels or share-button trackers.
- No session replay or heatmap recording. Nobody watches a recording of your screen.
- No cross-site or cross-device tracking. DebriefMD does not know what other sites you visit.
- No sale or sharing of personal information for advertising purposes.
- No fingerprinting.
- Fonts are served by DebriefMD itself rather than from Google Fonts, so loading a page does not tell Google you did.
6. Server-side logging
Independently of cookies, our servers keep operational logs, the kind every web service keeps to stay running and to investigate faults. These record request paths, timestamps, and status codes. They are not analytics and are not used for advertising, and an analytics choice does not affect them, because they are how outages get diagnosed. See the Privacy Policy for what they hold and how long they are kept.
7. The analytics banner
While analytics is paused, no banner appears, because there is nothing to decide.
The banner the analytics code uses asks before anything is collected: analytics storage is set to denied before Google's script can load, and closing the banner without choosing leaves analytics off. It is not a silent yes.
8. Controlling cookies
- In DebriefMD: while analytics is paused there is no optional cookie, so there is no setting to change. The card on this page shows the current state.
- In your browser: every major browser can block or clear cookies and site data for a single site. Blocking strictly necessary cookies will sign you out and prevent you from signing back in. Clearing site data also deletes any recording waiting in this browser (section 4).
- Global Privacy Control: if your browser sends a GPC signal, DebriefMD treats it as a refusal of analytics, and it wins even over an opt-in you recorded earlier.
9. Changes
If we add a cookie or a kind of browser storage, this page changes with it, and the change is dated at the top.
Adding any cookie that is not strictly necessary, or switching analytics back on, is a material change to this document. A choice you made under an earlier version is asked again rather than carried over, and this page will say what the cookie does and how to refuse it before it is set. Removing a cookie, or clarifying wording, is not material.
10. Questions
Email the Privacy Officer role at hello@debriefmd.ca.
Your cookie preferences
No analytics is configured for this deployment, so there is no optional cookie to decide about. Only the strictly necessary sign-in cookies above are set.
Questions?
Email hello@debriefmd.ca and a person will answer, whether it is about this document or about your own data.