Cookie Policy
AtomicOSINT LLC - Last updated: 2026-10-04 Effective date: 2026-10-04
1. Scope
This Cookie Policy explains the cookies and persistent client-side storage used by the AtomicOSINT iOS app, the admin console, and the API when a browser calls it. It covers browser cookies, browser local and session storage, and the Keychain items, preferences, and files the iOS app keeps on your device. The iOS app stores no cookies. The public website sets no cookies and stores nothing on your device.
2. Consent Behavior
Essential cookies and storage are required for authentication, account security, accessibility, language preferences, offline continuity, and preserving user-selected settings. They remain active even when non-essential cookies or tracking are rejected.
Non-essential analytics and error-tracking storage is used only when a user grants the applicable consent. On the admin console, selecting Accept stores cookie_consent=accepted and cookie_consent_at with the decision timestamp. Selecting Reject Non-Essential stores cookie_consent=rejected; session cookies and other essential storage still operate, but future non-essential analytics and browser error-tracking initialization remains blocked. In the iOS app, usage analytics and Sentry diagnostics require the in-app analytics consent.
Users can withdraw non-essential consent by changing the relevant in-app setting or clearing browser storage. Clearing browser storage may sign an administrator out or reset preferences. Signing out of the iOS app removes the session token, the offline copy, and the other learner data the app keeps on the device.
3. Cookie and Storage Inventory
| Key | Surface | Type | Classification | Purpose | Retention / lifetime |
|---|---|---|---|---|---|
micro_session | Admin console | Secure, HttpOnly first-party cookie | Essential | Signs administrators in and enforces role-based access. | Expires after 30 days, sign-out, or server-side session invalidation. |
micro_learner_session | API in a browser | Secure, HttpOnly first-party cookie | Essential | Signs a learner in when a browser calls the learner API. The iOS app stores no cookies. | Expires after 60 days, sign-out, or server-side session invalidation. |
atomic_osint_csrf | Admin console | Secure first-party cookie readable by the page | Essential | Pairs state-changing browser requests with the signed-in session to block forged requests. | Until the browser session ends. |
cookie_consent | Admin console | Browser local storage | Essential | Records whether you accepted or rejected non-essential storage. | Until you clear browser storage or change your choice. |
cookie_consent_at | Admin console | Browser local storage | Essential | Records the time of your latest cookie choice. | Until you clear browser storage or change your choice. |
atomic-osint-i18n-language | Admin console | Browser local storage | Essential | Keeps the interface language you selected. | Until you change the language or clear browser storage. |
atomic-osint-i18n-requested-language | Admin console | Browser local storage | Essential | Records a requested interface language while it is detected and loaded. | Until the language is applied or changed, or you clear browser storage. |
atomic-osint-error-tracking-consent | Admin console | Browser local storage | Non-essential | Allows browser error tracking with Sentry only after you opt in. | Until you withdraw consent or clear browser storage. |
admin_analytics_event_queue | Admin console | Browser local storage | Non-essential | Queues admin analytics events until they are sent; written only after you accept. | Until the events are sent or you clear browser storage. |
admin_analytics_login_page_view_recorded | Admin console | Browser session storage | Non-essential | Stops the sign-in page view from being counted more than once. | Until the browser tab closes. |
app.atomicosint.ios.learner-session | iOS app | Keychain item (account atomic-osint.session-token) | Essential | Holds your session token, available after the first unlock and only on this device. | Until you sign out, delete your account, or the session is replaced. |
app.atomicosint.ios.pending-registration | iOS app | Keychain item (account atomic-osint.pending-registration) | Essential | Holds an email registration that is not yet verified, including the password you entered until the server accepts the registration, then a claim secret and the verification link; available only while the device is unlocked and only on this device. | Until you verify, cancel, sign out or delete your account, or the claim expires. |
native-offline-snapshot.json | iOS app | File in Application Support, protected until first unlock | Essential | Keeps an offline copy of your profile, home, lessons, review queue, quests and programs, and the attempts and program days waiting to sync. | Until you sign out, delete your account, or sign in as a different learner. |
diagnostics-consent-authority.json | iOS app | File in Application Support, protected until first unlock | Essential | Keeps your confirmed analytics and diagnostics consent so diagnostics stay off until consent is confirmed. | Until you sign out, delete your account, or sign in as a different learner. |
atomic-osint.adult-consent-confirmed-at | iOS app | UserDefaults | Essential | Records the time you confirmed you are an adult and accepted the Terms on this device. | Until you sign out or delete your account, or app data is cleared. |
atomic-osint.push-device-id | iOS app | UserDefaults | Essential | A random ID for this installation, so a new push token replaces this device's old one instead of adding another. | Until the app is deleted or app data is cleared. |
atomic-osint.push-registration-enabled | iOS app | UserDefaults | Essential | Records that you switched on push notifications on this device, so the app keeps its push token current. | Until you sign out or delete your account, or app data is cleared. |
appAppearance | iOS app | UserDefaults | Essential | Keeps your light, dark or system appearance choice. | Until you change it or app data is cleared. |
atomic-osint.pending-app-intent-destination | iOS app | UserDefaults | Essential | Remembers which screen a Siri or Shortcuts action asked to open. | Until the screen opens. |
native.current-content.weekly | iOS app | UserDefaults | Essential | Keeps the last weekly current-content list for offline display. | Until it is refreshed, you sign out or delete your account, or app data is cleared. |
AtomicOSINTContentAssets | iOS app | Folder in Caches | Essential | Keeps the 100 most recent training images for offline use; it holds no personal data. | Until older images are replaced or iOS clears the cache. |
AtomicOSINT-data-export.json | iOS app | File in the temporary folder | Essential | Holds the copy of your data you asked to export until you share or discard it. | Until you sign out or delete your account, or iOS clears temporary files. |
AtomicOSINT-safe-portfolio.json | iOS app | File in the temporary folder | Essential | Holds the copy of your safe portfolio you asked to export until you share or discard it. | Until you sign out or delete your account, or iOS clears temporary files. |
Stripe's hosted checkout and Cloudflare Turnstile run on their own domains and may set their own cookies under their own policies.
4. Rejection Effects
Rejecting non-essential cookies and storage does not prevent authentication, security checks, accessibility preferences, language preferences, or offline learning continuity. Rejecting non-essential consent prevents optional analytics and browser error-tracking initialization. In the iOS app, analytics and diagnostics stay off unless you turn on the in-app analytics consent.
5. Contact
Questions about this Cookie Policy can be sent to [email protected].