Lumiary
Last updated · 2026-10-14
1. Overview
TezStudio ("the Studio") respects user privacy in Lumiary ("the App") and handles personal data in accordance with applicable laws including South Korea's Personal Information Protection Act and GDPR.
Because the App handles sensitive content (diary entries), we describe data flows transparently below.
2. Information We Collect
2-1. Diary content (user-entered)
- Diary title and body
- Mood (one of seven: Angry, Sad, Neutral, Happy, Excited, Loved, Tired)
- Entry timestamp
- AI feedback response text (when requested)
2-2. Account data
- Firebase Authentication identifier — one of anonymous sign-in, Sign in with Apple, or Google sign-in
- Email address and display name — provided by Apple/Google and retained only by Firebase Auth; the App does not store these in Realtime Database
2-3. Points and transaction history
- Point balance and transaction history (earn/spend timestamps and reason codes)
2-4. Advertising, analytics, and crash identifiers
- Advertising identifier (IDFA) — used by Google Mobile Ads (AdMob) only when ATT is granted
- Firebase Analytics event parameters — user_id (uid), mood code, content_length (character count), has_ai_feedback, diary_id (UUID), auth_method, app_version, platform, and various counts
- Crashlytics — device model, OS, app version, stack trace, plus user_id (uid), action, diary_id, and mood
Diary titles and bodies are never included in Analytics event parameters or Crashlytics logs.
2-5. AI feedback consent record
- Consent status (granted), the version of the consent copy accepted (version), and the server timestamp (updatedAt)
- Recorded in Realtime Database at
users/{uid}/aiConsentwhenever consent is granted or withdrawn; also kept on the device under the same uid. Deleted together withusers/{uid}on account deletion.
3. AI Feedback (Important) — Explicit Consent Required
The AI feedback feature (Lumi Echo AI) operates only after you explicitly consent on first use via the consent sheet. Once consented, each time you request feedback, the entry's mood, title, and body are sent from the app to Firebase Cloud Functions (region asia-northeast3, Seoul) and then on to the OpenAI GPT API (gpt-4o-mini), solely to generate feedback. You can still write and save diary entries without consenting; before consent is given, no points are deducted and no server calls are made for AI feedback.
- Withdrawing consent — User menu → Privacy → "Send Data for AI Feedback" toggle. Turning it off takes effect immediately, and the consent sheet will be shown again the next time you try to use the AI feature. After withdrawal, no diary content is sent externally.
- Consent record — When consent is granted or withdrawn, granted/version/updatedAt are written to
users/{uid}/aiConsentin Realtime Database and also kept on-device (see 2-5). Deleted together withusers/{uid}on account deletion. - What is sent to OpenAI: the entry's mood, title, and body — used only to generate feedback, never for any other purpose.
- Cross-border data transfer — OpenAI is a sub-processor located in the United States, and transmitted data is processed on OpenAI servers in the U.S. You may decline consent; declining disables the AI feedback feature.
- Cloud Functions logs do not store diary content — only status codes, error messages, and dates are recorded (Cloud Logging default retention: 30 days).
- OpenAI does not use the transmitted content to train AI models and retains it for up to 30 days for abuse monitoring before deletion. See the OpenAI Privacy Policy.
- Usage counter: 20 requests per user per day. Only an integer counter is stored at
aiUsage/daily/{date}/users/{uid}in Realtime Database; no diary content is included.
4. Data Storage and Location
Diary entries, points, and profile data are stored both on the device (UserDefaults) and in Firebase Realtime Database, kept in sync.
users/{uid}/diaries— title, body, mood, date (and optional AI feedback response)users/{uid}/points,users/{uid}/point_transactions— point balance and transaction historyusers/{uid}/profile— uid, sign-up and last sign-in timestamps, platform (iOS/Android), app versionusers/{uid}/aiConsent— AI feedback consent status, consent copy version, and server timestamp (see 2-5 and Section 3)- Email address and display name are retained only by Firebase Auth and are not written to Realtime Database.
The App does not apply its own application-level encryption at rest. All transport is TLS-encrypted, and Google Cloud applies default server-side encryption to stored data.
5. Advertising
The App shows only Google Mobile Ads (AdMob) rewarded video ads on the point top-up screen. There are no banner or interstitial ads.
- Users in the EEA and the UK are shown the Google UMP (User Messaging Platform) consent form for advertising before the ATT prompt. Order: UMP → ATT → ad load. An in-app option to reopen the consent form is planned for a future update; until then, contact supports@tez.kr to change your consent.
- App Tracking Transparency (ATT) permission is requested roughly 1 second after launch.
- If granted, personalized ads via IDFA are shown; if denied, only non-personalized ads are shown. Either way, all app features remain available.
- The advertising SDK does not access diary titles or bodies.
6. Analytics and Crash Reporting
- Firebase Analytics — only the parameters listed in 2-4 are sent; diary titles, bodies, and tags are never sent as event parameters. Not collected on the Simulator or in Debug builds.
- Firebase Crashlytics — in addition to standard device model, OS, app version, and stack trace, records user_id (uid), the action around the error, diary_id (UUID), and mood. Diary titles and bodies are not included.
7. Third Parties and Sub-Processors
We do not share personal data with third parties except for the following sub-processors:
- Google LLC — Firebase Realtime Database, Authentication, Cloud Functions, Cloud Logging, Analytics, Crashlytics, Google Mobile Ads (AdMob)
- OpenAI, L.L.C. (United States) — processes an entry's mood, title, and body when AI feedback is requested
- Apple Inc. — Sign in with Apple
8. Retention and Deletion
- Diary entries, points, and profile: removed immediately when you delete entries in-app or delete your account
- AI usage counter (
aiUsage/daily/{date}/users/{uid}— a single integer): auto-deleted after 7 days by the scheduled functionpurgeOldAIUsage - Cloud Functions logs (status codes, error messages, and dates only): auto-deleted after 30 days under Cloud Logging default policy
- OpenAI API data: auto-deleted within 30 days per OpenAI policy
- Crashlytics and Analytics identifiers: follow Google's default policies
9. User Rights
- Edit or delete entries directly in the App
- Account deletion — removes all data under
users/{uid}in Realtime Database, the Firebase Auth account, and device data. For Sign in with Apple, the Apple token is revoked; for Google sign-in, the Google link is removed. - Sign-out — only device data is cleared; server-side entries are retained and restored on next sign-in.
- Email requests: supports@tez.kr
10. Children's Privacy
The App is not directed to children under 14 and does not knowingly collect personal data from them.
11. Security
- TLS 1.2+ encryption in transit
- Firebase Realtime Database rules restrict each user to reading and writing only their own data
- Secrets such as the OpenAI API key reside only in the Firebase Cloud Functions server environment and are never exposed to clients
12. Policy Changes
We will provide advance notice via the App or this page before any material change to this policy.
13. Contact
For privacy inquiries, contact supports@tez.kr.