Skip to content

Migrating from v1

Version 27 is the client for Calimero 1.0 only. Calimero 1.0 nodes serve no admin API, no JSON-RPC, no mero-auth and no contexts or namespaces, so the v1 SDK that talked to them is gone. An app that still talks to a v1 (0.x) node stays on @calimero-network/mero-js@26.

v1’s names map to 1.0’s: namespace → organization, group → team, context → app (instance), application → signed package.

v1 (removed) Calimero 1.0
MeroJs, createMeroJs, MeroJsConfig, TokenData CalimeroClient
sdk.auth (AuthApiClient, mero-auth: username/password, SSO callback, JWT refresh) signUp / signIn with a passkey, refresh, createApiKey
parseAuthCallback, buildAuthLoginUrl, MemoryTokenStore, LocalStorageTokenStore, TokenStore keep the CalimeroSession yourself and pass it to useSession
login, signLoginStatement, generateSessionKey, DelegatedSession passkey sessions and API keys
sdk.admin (AdminApiClient): applications installPackage, uploadPackage, packages, uninstallPackage
sdk.admin: contexts, identities, join createApp, listApps, getApp, deleteApp, setAccess
sdk.admin: namespaces, groups, members, invitations createOrg, createTeam, setMember, setTeamMember, invite, redeemInvite
sdk.admin: group upgrades and their status upgradeOrg, upgradeRun, retryUpgradeRun
sdk.admin: blobs uploadBlob, downloadBlob, listBlobs, blobInfo, deleteBlob
sdk.admin: TEE admission policy, release admission approveRelease (the owner’s passkey)
sdk.rpc (RpcClient, RpcError, execute) call, callConfirmed, view; AppError, TrapError
sdk.events / sdk.ws (SseClient, WsClient) and their event types events(app) (sealed SSE)
EphemeralClient, subscribePresence, jsonCodec publishPresence, presence, presenceStream
CloudClient (namespaces, relays, HA) none: every app is replicated on the cluster
account roots (generateAccountRoot, accountRootFromPhrase, signAccountLink, …), resolveRoot the account is its passkeys
device certificates and scopes (signDeviceCert, signDeviceScope, …) each passkey is a device (addPasskey, labelPasskey)
signGroupInvitation, signMemberJoinOp, owner ops (transferOwnershipOp, teeAdmissionPolicyOp, …) invite; setMember(org, account, 'owner', passkey); approveRelease
signerFromSecret, signerFromCryptoKey none needed
CAPABILITIES, CAPABILITY_PRESETS, capMask, hasCap, … ORG_CAPABILITIES, orgCapabilities (same bit values, 1.0 names)
HTTPError, AuthRevokedError, classifyError CalimeroError and its subclasses
createBrowserHttpClient, createNodeHttpClient, withRetry, … get / post / put / delete on the client (sealed)
discoverLocalNodes, probeNodeHealth, localNodeUrl merod local prints its node URLs
fetchAttestedTransportKey, createAttestedSealedFetch (/admin-api/tee/attest) fetchAttestedKey(baseUrl, policy) (/attestation)
createSignedReleaseSealedFetch, fetchNodeReleaseVersion, nodeReleaseVersionFromImage (/admin-api/tee/info) CalimeroClient with policy.release (the node names its release in its attestation)

The sealed transport (createSealedFetch, transportKeyBinding, the error types), quote and signed-release verification (createQuoteVerifier, trustedMeasurementsFromReleases, createSignedReleaseVerifier, trustSignedRelease, verifySignedNodeRelease, …) and the private agent gate (attestAgent, provisionAgent, releaseAgent, …) are unchanged.