How supabase/supabase-swift works
Supabase Swift is a client SDK whose principal workflow is application code configuring one client, then using its service interfaces to authenticate, query Postgres, subscribe to changes, manage objects, or invoke Edge Functions. The graph preserves these separate domain operations and the shared HTTP transport layer. README establishes the full-client composition; sampled source confirms selected Auth session, Storage request, and Realtime state behavior, so unsampled wiring is not expanded beyond documented capabilities.
Main entry points: HTTPClient.swift HTTP Client · SupabaseClient.swift Supabase Client · AuthClient.swift Auth Client · PostgrestClient.swift PostgREST Client
Components 28
Client Entry
- Supabase Client
Sources/Supabase/SupabaseClient.swift
Authentication
- Auth Client
Sources/Auth/AuthClient.swift - Auth API
Sources/Auth/Internal/APIClient.swift - Session Manager
Sources/Auth/Internal/SessionManager.swift - Session Storage
Sources/Auth/Internal/SessionStorage.swift - Local Auth Storage
Sources/Auth/Storage/AuthLocalStorage.swift - Keychain Storage
Sources/Auth/Storage/KeychainLocalStorage.swift - OAuth Server
Sources/Auth/AuthOAuthServer.swift - Passkey Auth
Sources/Auth/WebAuthn/AuthClient+Passkey.swift
Database And Events
- PostgREST Client
Sources/PostgREST/Legacy/PostgrestClient.swift - Query Builder
Sources/PostgREST/Legacy/PostgrestQueryBuilder.swift - Typed Queries
Sources/PostgREST/Query/PostgrestTypedQuery.swift - Realtime Client
Sources/RealtimeV2/RealtimeClientV2.swift - Realtime Channel
Sources/RealtimeV2/RealtimeChannelV2.swift - Channel State
Sources/RealtimeV2/ChannelStateManager.swift
Storage And Functions
- Storage Client
Sources/Storage/SupabaseStorage.swift - File Operations
Sources/Storage/StorageFileApi.swift - Storage API
Sources/Storage/StorageApi.swift - Vector Storage
Sources/Storage/StorageVectorsClient.swift - Functions Client
Sources/Functions/FunctionsClient.swift
Transport
- HTTP Client
Sources/Helpers/HTTP/HTTPClient.swift - URLSession Transport
Sources/Helpers/HTTP/URLSessionTransport.swift
Other components
- Application
- Supabase Auth Service
- Postgres REST Service
- Realtime Service
- Storage Service
- Edge Functions
Connections 30
- Application → Supabase Client: configures
- Supabase Client → Auth Client: exposes
- Supabase Client → PostgREST Client: exposes
- Supabase Client → Realtime Client: exposes
- Supabase Client → Storage Client: exposes
- Supabase Client → Functions Client: exposes
- Auth Client → Auth API: requests
- Auth Client → Session Manager: updates
- Session Manager → Session Storage: persists
- Session Storage → Local Auth Storage: reads and writes
- Local Auth Storage → Keychain Storage: defaults to
- Auth Client → OAuth Server: supports OAuth
- Auth Client → Passkey Auth: supports passkeys
- Auth API → Supabase Auth Service: sends requests
- PostgREST Client → Query Builder: builds queries
- PostgREST Client → Typed Queries: supports typed queries
- PostgREST Client → HTTP Client: executes requests
- HTTP Client → Postgres REST Service: sends REST calls
- Realtime Client → Realtime Channel: opens channels
- Realtime Channel → Channel State: drives lifecycle
- Realtime Client → Realtime Service: exchanges events
- Storage Client → File Operations: provides file operations
- Storage Client → Vector Storage: provides vector APIs
- File Operations → Storage API: delegates requests
- Vector Storage → Storage API: delegates requests
- Storage API → HTTP Client: sends requests
- HTTP Client → Storage Service: sends storage calls
- Functions Client → HTTP Client: invokes transport
- HTTP Client → Edge Functions: sends invocations
- HTTP Client → URLSession Transport: uses transport