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.
Removed, and what replaces it
Section titled “Removed, and what replaces it”| 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.