@idapt/browser-app-sdk
v0.4.0
Published
Idapt browser-app runtime SDK — the cookie-bootstrap handoff, the React hooks, and the per-app data KV. Browser apps bundle this themselves (npm-only). Composes @idapt/sdk for v1 API calls.
Readme
@idapt/browser-app-sdk
The runtime SDK for apps that run inside idapt. Browser
apps are npm-only: you npm install @idapt/browser-app-sdk, import it, and
your build bundles it — the server does NOT inject a global SDK. It gives an
in-idapt app the glue beyond plain API calls:
- the cookie auto-connect (auto sign-in for your app, no key handling),
- per-app key/value data (
client.data.*) and your app's bundle reader, - realtime broadcast, presence, and live subscribe through
client.realtime, - the React hooks (
@idapt/browser-app-sdk/react) — includinguseChannel/usePresencefor realtime, - the full v1 API surface (it composes
@idapt/sdk).
Pre-GA/default-off products are not part of the browser-app SDK public surface
while their feature flags are off. That includes workspace Data Plane
(Datastore/KV, Blobs, Tables), Repositories, Hub/store, workspace Skills, and
Functions. Use client.data.* for an app's own per-(user x app) KV; it is a
separate runtime surface backed by /api/browser-app/data/*.
There is no off-idapt local mode and no window.Idapt IIFE — an app
built with this SDK must run on idapt (the cookie bootstrap needs the idapt
origin). connect() throws if the app is not served by idapt.
Usage
import { connect } from "@idapt/browser-app-sdk";
// On an idapt app subdomain the app-key cookie auto-connects — no args needed:
const client = await connect();
await client.data.setJSON("prefs.json", { theme: "dark" });
const me = await client.user.me();For library / server use (outside an app subdomain), pass an explicit key:
const client = await connect({ apiUrl: "https://idapt.app", key: process.env.IDAPT_API_KEY! });Development
The package emits the npm library bundle with npm run build. The local
Kubernetes API dev image and Tilt live-update use the equivalent
npm run build:browser alias so browser-app SDK rebuilds can stay scoped to the
browser runtime package.
