63 lines
2.3 KiB
Rust
63 lines
2.3 KiB
Rust
//! HTTP client for the `ely-browser-cloud` Cloudflare worker.
|
|
//!
|
|
//! The worker exposes the device-bound sync API documented in
|
|
//! `cloudflare/src/sync_*.ts`. This crate is the renderer-side counterpart:
|
|
//! it owns the Better Auth bearer token, the locally-generated device
|
|
//! identity, and the JSON wire types needed to push and pull the user's
|
|
//! browser state.
|
|
//!
|
|
//! Scope today:
|
|
//! - Bearer-token authenticated requests via `ureq`.
|
|
//! - Device registration (`POST /api/devices/register`) and listing
|
|
//! (`GET /api/devices`).
|
|
//! - Sync status (`GET /api/sync/status`), snapshot upload
|
|
//! (`POST /api/sync/snapshot`), and snapshot download
|
|
//! (`GET /api/sync/snapshot?snapshot_id=…`).
|
|
//! - The full Better Auth handshake (email + OTP / OAuth). Callers obtain
|
|
//! the bearer token out-of-band and hand it to the client.
|
|
|
|
pub mod auth;
|
|
mod auth_files;
|
|
pub mod client;
|
|
mod credential_store;
|
|
pub mod device;
|
|
mod device_api;
|
|
mod device_proof;
|
|
mod device_revocation;
|
|
pub mod device_secret_store;
|
|
pub mod email_otp;
|
|
pub mod encryption;
|
|
pub mod error;
|
|
pub mod key_store;
|
|
pub mod snapshot;
|
|
mod sync_owner;
|
|
pub mod vault;
|
|
mod vault_bootstrap;
|
|
|
|
pub use auth::{BearerToken, BearerTokenStore};
|
|
pub use client::{
|
|
ApiClientConfig, SnapshotDownloadResult, SnapshotUploadResult, SyncApiClient,
|
|
SyncLatestSnapshotDocument, SyncSnapshotHeadConflictDocument, SyncStatusDocument,
|
|
};
|
|
pub use device::{DeviceIdentity, DeviceListResponse, DeviceRecord, DeviceRegistration};
|
|
pub use device_api::{DeviceApprovalDocument, DeviceApprovalRequest, DeviceRebindDocument};
|
|
pub use device_revocation::{DeviceRevocationDocument, DeviceRevocationRequest};
|
|
pub use device_secret_store::DeviceSecretStore;
|
|
pub use email_otp::{send_email_otp, verify_email_otp};
|
|
pub use encryption::{
|
|
AccountKey, EncryptedSnapshot, SNAPSHOT_ENCRYPTION_VERSION, SnapshotCryptoContext,
|
|
SnapshotHeadRef,
|
|
};
|
|
pub use error::SyncClientError;
|
|
pub use key_store::{AccountKeyStore, StoredAccountKeys};
|
|
pub use snapshot::{
|
|
AuthenticatedSnapshot, AuthenticatedSnapshotHead, SnapshotDownload, SnapshotPayload,
|
|
SnapshotUploadRequest,
|
|
};
|
|
pub use sync_owner::SyncOwnerStore;
|
|
pub use vault::{
|
|
ACCOUNT_KEY_WRAP_SUITE, ACCOUNT_KEY_WRAP_VERSION, SyncVaultDocument, VaultContext,
|
|
WrappedAccountKey,
|
|
};
|
|
pub use vault_bootstrap::SyncVaultBootstrapRequest;
|