@openmerge/js
v0.2.0
Published
Browser SDK for the OpenMerge embed widgets and typed postMessage protocol
Readme
@openmerge/js
Browser loader for OpenMerge's isolated embed app.
import { OpenMerge } from "@openmerge/js"
const handle = OpenMerge.link({
token, // short-lived token minted by your backend with host_origin
embedUrl: "https://connect.example.com",
onSuccess: ({ linked_account_id, provider }) => {},
onError: ({ message }) => {},
onClose: () => {},
})The embed URL is required deliberately: an OSS deployment cannot safely guess its widget origin. Host the widget on a different HTTPS origin from the customer application. When minting the token, send the exact customer origin:
{
"wsid": "ws_...",
"end_user_origin_id": "customer-user-123",
"host_origin": "https://app.customer.example"
}The iframe verifies that token-bound origin before enabling any widget operation. The SDK additionally checks the embed origin, iframe window identity, HTTPS, and a restrictive sandbox. Workspace API keys must never reach the browser.
Other surfaces are OpenMerge.manager, OpenMerge.fieldMapping, and OpenMerge.syncStatus. Field-mapping submissions are approval-gated proposals.
