DueHub Privacy Policy

Effective Date: May 5, 2026 · Last Updated: May 5, 2026

Introduction

DueHub is a study-planning application for K-12 and college students, available at https://app.getduehub.com. This Privacy Policy describes how DueHub accesses, uses, stores, shares, retains, and deletes user data — including data obtained from Google through OAuth — when you use the application.

If you have questions about this policy or want to exercise your rights regarding your data, contact us at admin@getduehub.com.

Limited Use of Google User Data

DueHub's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically:

Data Accessed

When you connect your Google account, DueHub requests the following OAuth scopes:

ScopeSensitivityWhat DueHub reads
openidStandardYour Google user ID (sub) and email claim, contained in the OAuth ID token
https://www.googleapis.com/auth/userinfo.emailStandardYour email address (read from the ID token claims; DueHub does not make a separate userinfo call)
https://www.googleapis.com/auth/calendar.readonlySensitiveYour calendar list metadata and events from the calendars you choose to sync
https://www.googleapis.com/auth/calendar.eventsSensitivePermission to create, edit, and delete events that DueHub itself has created on a single "write target" calendar that you select

The specific Google API endpoints DueHub calls are:

The specific fields DueHub reads are:

DueHub does not access any other Google scopes or services. DueHub does not request or read Gmail, Drive, Contacts, People API, Photos, YouTube, or Workspace admin APIs.

Data Usage

DueHub is a study planner. Calendar data is used so your existing schedule appears alongside your DueHub study sessions on a single calendar grid. We use the data you authorize for the following narrowly scoped purposes:

DueHub does not use Google user data for advertising, profiling, generalized AI/ML training, or any purpose other than the features you have explicitly enabled by connecting your account.

Data Sharing

DueHub does not sell, rent, or share Google user data with any third party for advertising or any other independent purpose.

To operate the service, DueHub relies on three infrastructure providers, each of which acts only as a data processor under our direction:

VendorRoleGoogle data handled
NeonPostgres database hostStores all DueHub data, including encrypted Google OAuth tokens, calendar list metadata, and cached event rows. Neon applies encryption at rest to the database.
RenderApplication hostingRuns the DueHub server that issues calls to Google APIs. Holds the master encryption key needed to decrypt OAuth tokens for active API calls in process memory. Render does not persistently store Google data outside of the application's runtime.
SentryError monitoringReceives crash and error events from server and client. A scrubbing layer strips cookies, the Authorization and Cookieheaders, request bodies, and any OAuth-state-bearing query strings before any event leaves DueHub's process. Sentry's PII-by-default behavior is disabled, and Sentry session replay is not enabled.

Other vendors used by DueHub do not see Google calendar data:

There are no third-party trackers, advertising networks, data brokers, or analytics vendors loaded by DueHub's frontend or backend.

Data Storage & Protection

Encryption at rest (Google OAuth tokens): access tokens and refresh tokens are encrypted using AES-256-GCM with a master key held only in environment variables on the production hosting platform. Each ciphertext has its own random 12-byte initialization vector and a 16-byte authentication tag that is verified on decryption (which fails closed on any tampering). A leaked database row alone cannot be decrypted without the separately held master key.

Encryption in transit:all network traffic between you and DueHub, and between DueHub and Google's APIs, uses HTTPS/TLS. DueHub sends a strict transport security header (Strict-Transport-Security: max-age=31536000; includeSubDomains; preload). Additional security headers in place include X-Content-Type-Options: nosniff, X-Frame-Options: DENY, Referrer-Policy: strict-origin-when-cross-origin, and a restrictive Permissions-Policy that disables geolocation, microphone, camera, payment, USB, magnetometer, accelerometer, and gyroscope APIs.

Tenant isolation: every database row that holds user data carries an explicit user_id column. Database-level composite foreign keys require that child rows reference a parent row owned by the same user, enforcing tenant isolation at the database layer.

Application-level access control:every API route validates the user's authenticated session via Clerk before reading any data. Internal-only endpoints (cron-triggered sync and cleanup routes) use bearer-token authentication with constant-time comparison. During DueHub's closed beta, an allowlist further restricts access at the middleware layer.

Rate limiting: sensitive endpoints are rate-limited. Examples include the allowlist gate (30 requests/minute per user), credential configuration endpoints (10 attempts per 10 minutes), the account deletion endpoint (3 attempts per hour), and the internal sync trigger (5 requests/minute).

Logging hygiene: OAuth token-exchange and refresh requests do not log request or response bodies, which would otherwise contain client secrets, authorization codes, refresh tokens, and access tokens. Application error logs extract only error message strings rather than raw error objects, to avoid accidental token or response-body leakage.

Pre-beta security review: a structured security review was conducted on May 1, 2026, covering authentication, tenant scoping, token encryption, server-side request forgery defenses, PII in logs, security headers, and rate limiting.

Hosting location and data residency: DueHub uses Neon Postgres (US-East AWS region) for its database and Render (US-East) for its application server. Both providers are US-based, and DueHub stores and processes user data exclusively in the United States. We do not currently transfer user data outside of the United States; if that ever changes, this policy will be updated and existing users will be notified through the application.

Data Retention & Deletion

You can remove your Google data from DueHub at any time using one of the following self-service actions:

  1. Disconnect Google(Settings → Connections → Disconnect): immediately deletes your Google credentials row (encrypted access and refresh tokens, calendar list metadata, and identity columns) and all of your cached event rows. Clears your configured write-target calendar setting. Removes the Google event ID linkage from your DueHub study sessions, so DueHub no longer references any Google event. Before deletion, DueHub also makes a best-effort revocation of your refresh token at Google's /revoke endpoint.
  2. Disconnect Google with delete-events option: identical to (1), and additionally deletes the events DueHub created from your Google Calendar via the events.deleteAPI. You choose between “delete N events from Google” and “leave events” in a confirmation prompt; the default is to leave events untouched.
  3. Account deletion (Settings → Account → Delete account, with type-DELETE confirmation): hard-deletes every database row associated with your account across all 18 DueHub tables, including Google credentials, cached Google events, study sessions, assignments, courses, and preferences, atomically in a single transaction. Your Clerk authentication account is then deleted. An optional toggle deletes DueHub-created events from your Google Calendar before the database wipe. This endpoint is rate-limited to 3 attempts per hour to prevent abuse of a compromised session.
  4. Data export (Settings → Account → Export my data): downloads a JSON copy of all data DueHub has stored about you. Encrypted credential ciphertext is excluded from the export; only non-secret connection metadata (such as your display email) is included.

Automatic retention windows (enforced by a daily cleanup job):

How to request deletion: the in-app deletion controls described above are self-service and immediate. You may also email admin@getduehub.com to request deletion; email requests will be honored within a reasonable business window.

Children's Privacy

DueHub's user base may include K-12 students, including minors. The broader Privacy Policy will include disclosures required by COPPA, FERPA, and applicable state student-data- protection laws. The present version focuses on how DueHub handles data obtained from Google and other connected services; it is not a substitute for the full children's- privacy disclosures that will be added under counsel guidance before public launch.

Changes to This Policy

We may update this Privacy Policy from time to time. When we make material changes, we will update the “Last Updated” date and, where appropriate, request your re-acceptance from within the application. The currently published version at https://app.getduehub.com/privacy is authoritative.

Contact

For privacy questions, deletion requests, or to exercise your rights regarding your data:

admin@getduehub.com


See also: Terms of Service