Storage inventory

Current storage and tracking inventory

This page is based on the current codebase rather than vendor boilerplate. It lists the storage and processing surfaces that are actually visible in the app today.

Item

bierdex-admin

Location

Cookie · /admin path

Purpose

Keeps the protected admin review area authenticated.

Retention

8 hours

Consent

Strictly necessary

Item

bierdex:consent

Location

localStorage

Purpose

Stores the visitor’s privacy choices so optional features stay blocked or allowed consistently.

Retention

Until changed or cleared

Consent

Strictly necessary

Item

bierdex:locale

Location

localStorage

Purpose

Remembers language selection across visits when preference storage is allowed.

Retention

Until changed or cleared

Consent

Preferences

Item

Turnstile verification

Location

Third-party request on /contribute

Purpose

Blocks automated abuse on the public submission form.

Retention

Defined by Cloudflare Turnstile processing

Consent

Security / necessary processing

Item

Hashed IP rate limit record

Location

Database row

Purpose

Limits repeat submissions and suppresses abuse without storing a raw IP in the application database.

Retention

Short-lived operational retention

Consent

Security / necessary processing

Item

Data erasure request email

Location

Encrypted database row

Purpose

Lets the operator verify and fulfil a delete-my-data request without exposing the email in plaintext at rest.

Retention

Until the request is completed

Consent

User-requested legal/compliance handling

Item

Submission record

Location

Supabase user_submissions table

Purpose

Persists the reported venue, beer type, serving size, price, moderation status, and anti-abuse metadata needed to review and publish prices.

Retention

Up to 12 months

Consent

Service operation / submission handling

Item

Menu photo

Location

Supabase Storage bucket

Purpose

Optional image uploaded with a price submission, used by the admin to visually verify the reported price against a menu. Not published publicly.

Retention

Up to 12 months, deleted with the linked submission

Consent

Service operation / submission handling

Item

Feedback message

Location

Supabase feedback table

Purpose

Stores the category, message, and optionally an AES-256-GCM encrypted contact email submitted through the feedback form.

Retention

Until reviewed, then deleted or marked spam

Consent

User-initiated contact

Item

Rapid-contact message

Location

Relayed to a Discord channel; not stored by Bierdex

Purpose

Name, subject, reply email and message from the Impressum rapid-contact form, forwarded to the operator's Discord channel so the operator can reply quickly. Discord (Discord Inc., USA) acts as processor under EU Standard Contractual Clauses / the EU–US Data Privacy Framework.

Retention

Not stored by Bierdex; remains in the operator's Discord channel until manually deleted

Consent

User-initiated contact

Contribute