Launch OpenGPEX

Cloud Integration

How OpenGPEX connects to GPEX-Cloud for authentication, file storage, and sharing — using a stateless API protocol with explicit user-driven sync.


Architecture

┌──────────────────────┐         ┌─────────────────────────────┐
│   OpenGPEX Editor     │         │       GPEX-Cloud              │
│                       │         │                              │
│  gpexStorage (client) │ ◄─────► │  Auth API (OTP / OAuth)      │
│  authFetch (helper)   │  HTTPS  │  File API (save/list/share)  │
│       │               │         │  User API (quota)            │
│       ▼               │         │                              │
│  Cloud Menu UI        │         │  Cloudflare R2 (object store)│
└──────────────────────┘         └─────────────────────────────┘

Authentication

  • Primary: Email + OTP (one-time password) verification
  • Secondary: OAuth popup login
  • Tokens: Access JWT (1h, HttpOnly cookie) + Refresh token (7d, HttpOnly cookie)
  • Auto-refresh: Access token refreshes transparently before expiry

File Operations

The editor communicates with GPEX-Cloud through a unified gpexStorage client:

Operation Description
save Upload serialized .gpex container → object storage
list Retrieve user's file catalog with metadata
download Fetch .gpex container by file ID
remove Delete a saved file
share Generate public sharing link
unshare Revoke sharing access
getQuota Check storage usage

Sync Model

OpenGPEX uses explicit, user-driven sync rather than automatic background synchronization:

  • The editor always works locally (IndexedDB), even offline
  • Cloud save requires the user to explicitly click "Save to Cloud"
  • There is no background offline queue or automatic conflict resolution
  • If a local project conflicts with a cloud version, a warning dialog prevents accidental overwrite

This design prioritizes user control and predictability over seamless sync — appropriate for a creative tool where accidental overwrites are costly.


Quota

Tier Storage Files
Free 100 MB 20 files

Quota is enforced server-side. The editor displays current usage in the Cloud Menu.


Last updated: 2026-07-30