| Browser storage and cookies | Analytics consent, PostHog browser/session identifiers, host credentials, host-transfer and recovery flags, create drafts, preview data, join preferences, and sound or pacing preferences. | User/browser-scoped localStorage, sessionStorage, cookies, or history.state. These are not server account records. | sessionStorage and history.state entries last for the tab or browser session. localStorage lasts until the user clears it. The analytics consent cookie expires after 1 year. | Account deletion does not reach data stored only in the user's browser; users can clear site data locally at any time. |
|---|
| Run and participant data | Run metadata, immutable Activity snapshot, content items, rounds, round timing, players, nicknames, host-configured join details such as department or table, answers, scores, Q&A, message wall posts, brainstorm ideas and votes, moderation events, control-room state/events, operator sessions, display-name overrides, and blocked join attempts. | Server-retained Convex data scoped to the Run. | Retained while the Run is active. When the Run finishes or is cancelled, Discera sets an expiry from an approved 1, 7, 30, 90, or 365-day attached Event override, then the workspace and organization defaults, then the 30-day system fallback. Lower-level values must remain inside organization constraints. Expired Runs become unavailable, and daily cleanup removes the Run row plus cleanup-covered live-Run records such as rounds, players, answers, Q&A, message-wall, brainstorm, moderation, control-room, operator, display-name, blocked-join, score, and storage-reference rows. | Hosts and players can see Run data where the live experience requires it. Feature-specific audit and operational records follow their owning cleanup paths. |
|---|
| Audience rosters and participant data-rights records | Host-entered participant display names and email addresses, historical links to Run players, verified export/erasure workflow state, hosted-recap redaction evidence, external Teams follow-up outcomes, legal holds, and privacy-safe audit receipts. | Workspace-scoped Convex data. Roster PII is available only to authorized signed-in editors/controllers and a current host for the matching Audience-bound Run; it is never shown to participants or included in sharing, copy, move, presentation, or analytics payloads. | Roster entries remain until archived or erased by a verified participant request. Link snapshots remain for Run history until Run cleanup or participant erasure strips their identifying fields. Pending requests temporarily retain the normalized address and verification evidence. If erasure processing fails but can recover, Discera retains the normalized address and minimal phase/cursor identifiers needed for automatic retry while scrubbing verification evidence immediately. Completion or exhausted recovery removes that transient context and retains only a hashed idempotency key, request kind/status, timestamps, affected count, hosted-recap counts, external-copy outcomes, and non-identifying audit receipts. Active legal holds suspend erasure and release resumes it. | Workspace owners/admins or organization owners/admins handle verified access, portable JSON/CSV export, erasure, and holds. Erasure removes covered active identifiers, metadata, responses, uploads, standings, embedded references, and identity-linked names in hosted recap links. The retained receipt and any aggregates do not identify the participant. Recipient-controlled Teams cards use a receipted owner follow-up when existing permissions cannot remove them; processor backups follow separately disclosed windows. |
|---|
| Portable workspace exports | Revision-pinned ZIP packages with JSON, CSV tables, integrity checksums, explicit omissions, and durable controller-visible job receipts. | Discera-held package storage and download handles remain under Discera control. Once downloaded, a controller-held copy is outside Discera control. | Discera normally retains a generated package for up to seven days. Participant erasure invalidates every earlier queued, running, complete, or incomplete export that could contain the participant before completion, deletes any Discera-held package, and revokes its download handle. The non-content job receipt remains. A later export is generated from post-erasure canonical state. | Controllers must store downloaded copies securely and retain or delete them under their own policy. Participant erasure cannot recall a file already saved outside Discera. |
|---|
| Uploaded Activity and Run assets | Question media, slide media, audio, canvas images, player avatars, answer thumbnails, generated assets, and source files registered to an Activity, Run, or content item. | Convex storage objects plus storage-reference rows owned by the Activity, Run, content item, round, or related runtime record. | Follows the owning Run through its resolved retention window, then is removed by expired-Run cleanup when no other owner references the storage object. | Shared or reused storage is deleted only after Discera confirms no saved owner still references it. |
|---|
| Draft or abandoned uploads | Source PDFs, generated theme logos, images, audio, and canvas media uploaded while drafting but not saved into an Activity, template, theme, or account-owned asset. | Short-lived upload-capability rows containing the session scope, purpose, token hash, lifecycle status, and timestamps; Convex uploaded-file rows; storage objects; and bounded cleanup diagnostics. Capability rows retain a token hash rather than the client-held token. | Upload capabilities expire after ten minutes. A bound capability can be extended in five-minute increments while deletion and durable cleanup-job persistence both fail. Unadopted draft uploads are retained for at least 24 hours; after that, daily cleanup removes them when no saved owner references the storage object. | If a draft upload is saved or adopted, it follows the saved owner and validated ownership removes matching cleanup diagnostics. Failed best-effort deletes can be retried by cleanup jobs. Terminal cleanup diagnostics omit caller-linked context and are removed at an eligible reconciliation sweep after the object is deleted or confirmed absent, gains a durable owner reference, or is superseded by newer uploaded-file ownership metadata. |
|---|
| Host account data and saved assets | User profile fields, local Convex auth rows/sessions, entitlements, saved Activities and templates, custom themes, theme/template upload references, account-linked upload metadata, pending workspace invitations addressed to the verified account email, invitation creator references, and commercial-prompt cooldown state. Account export includes its documented account-owned records and retained Run metadata, but excludes commercial-prompt cooldown and attribution rows. | Convex account tables and account-owned storage references. | Retained until the host deletes the account or asks Discera to remove it. Local deletion removes the account row, linked auth/session rows, saved templates, custom themes, entitlements, commercial-prompt cooldown and attribution rows, unreferenced account uploads, and pending invitations addressed to the normalized verified identity email. Invitation audit email and ID fields are redacted first. Invitations created by the account remain usable with their creator reference removed. | Runs created by the host are detached from the deleted account and stay only until their normal Run-retention expiry. A content-free deletion receipt remains unfinished until the bounded invitation cleanup completes; it never stores the email address. |
|---|
| PowerPoint deck connections | SHA-256 fingerprints derived locally from compressed deck bytes, opaque deck-link IDs, workspace relationships, retry request IDs, revision state, and lifecycle audit events. Deck bytes, slide content, titles, and filenames are not uploaded. Static slides written locally into a presentation can include source titles, the source Theme’s colors and uploaded logo, an active join code/link, winner display names, or participation totals, plus hidden provenance tags holding opaque source and generation-event IDs, the source and asset kinds, a source revision, a generation timestamp, and the Discera asset version. | Convex link/audit tables, PowerPoint settings, and saved copies. | Personal-workspace links and events are removed through bounded background cleanup after account deletion. Team-workspace links and audit evidence remain with the team; deleted creator and actor identifiers are anonymized. Discera retention and account deletion cannot remove static slides from presentations or copies saved and shared by the host. | Access-denial evidence, including denied static-slide generation, is retained as internal workspace security evidence and is not included in the probing account’s self-service export. |
|---|
| Workspace offboarding | Workspace-owned Activities, templates, Runs and participant/runtime rows, memberships, invitations, share links, edit leases, exports, PowerPoint links, and workspace audit detail. | The selected personal or team workspace in the regional Discera application database and storage. Independently copied assets in another workspace are destination-owned and survive. | A confirmed deletion makes the workspace unavailable immediately, cancels planned Runs, and targets verified product-visible cleanup within 24 hours. A minimal no-content receipt is retained for one year. There is no grace period or recovery window. | Open/live Runs and active supported legal holds block confirmation. Export is offered but failure or non-download does not delay deletion. Product completion and processor-backup deletion are separate states; backup verification follows provider operations and evidence. |
|---|
| Auth0 identity | Provider-side identity, Auth0 login/session metadata, and upstream identity-provider session data where applicable. | Auth0 and any upstream identity provider systems. | Manual deletion boundary: deleting the local Discera account does not automatically delete the Auth0-side identity. Email privacy@consensus.dk for operator-handled Auth0 identity deletion. | Retention follows Auth0 and upstream identity-provider configuration and processor terms. |
|---|
| Diagnostics and analytics | Essential error and canonical route diagnostics, memory-only pseudonymous diagnostics identifiers, request identifiers, optional PostHog product events without internal Run or gameplay-session identifiers, bounded sanitized failure details, consented session replay, signed-in account attribution, historical first-party commercial-prompt attribution with account and Event/Workspace/Run/Activity/version provenance, and public FAQ questions, generated manual answers, and cited manual concept keys. Historical commercial attribution contains aggregate content counts and feature-use flags, never participant identity or participant content. | App telemetry, Convex attribution, and configured PostHog. | Essential diagnostics are typically retained for up to 90 days. Consent-gated PostHog analytics and session replay are typically retained for up to 12 months. First-party commercial attribution is deleted with its retained Run or local host account, whichever occurs first. Public FAQ question records are eligible for deletion 90 days after they are asked and are removed by the next successful daily cleanup; OpenAI, Vercel, and other provider or log retention follows their separate terms. | Essential diagnostics are used to keep live Runs reliable. Optional analytics and session replay run only after analytics consent. For signed-in hosts who accepted analytics, deleting the local Discera account does not automatically remove the PostHog person profile or consented product-event history linked to the account. Any consented session replays are retained separately and are not removed by local account deletion. PostHog analytics and session replays are typically retained for up to 12 months. Email privacy@consensus.dk to request operator-handled removal of the PostHog person profile, associated events, and session replays. Public FAQ question records have no structured account or workspace reference, but free text can identify the visitor. Retained first-party commercial attribution was likewise created only after analytics consent; no new attribution is written. Direct Run provenance stays first-party and is not sent in typed PostHog events. |
|---|
| Security and abuse-control records | Pseudonymous AI authoring caller keys, rate-limit counters, violation history, and temporary lockout state. | Server-retained Convex rate-limit data. | Rows become eligible for cleanup after one hour without an update. Cleanup runs daily, so a row can remain for up to about 25 hours after its last update. | The AI caller key is derived from the client address and changes at each UTC day boundary; Convex does not receive or store the raw address. |
|---|
| External processors | Vercel, Convex, Auth0, PostHog, Stripe, Microsoft Teams Workflow, OpenAI, Context.dev, Nominatim/OpenStreetMap, CARTO, YouTube, and Vimeo. | Third-party processor systems used for infrastructure, authentication, diagnostics/analytics, commerce, host-configured workflow delivery, AI/enrichment, maps, and embedded media. | Retention follows each processor's terms, configuration, and feature-specific setup. The Stripe-side customer record and retained commerce evidence survive local account deletion under the commerce retention lifecycle. Cards already delivered to Microsoft Teams are recipient-controlled; when existing permissions cannot remove an affected recap card, Discera records an owner follow-up requirement. | Discera does not promise data residency, vendor no-retention, DPA coverage, SOC 2, ISO, or similar enterprise commitments unless those terms are separately documented. |
|---|