@revoengine/sdk exposes the modern RevoEngine runtime to Node.js 22 or newer. It provides:
apifor platform-backed runtime operations;vaultfor explicit Secret text and connected account credentials;serviceAccountfor accounts, management ACL, execution memberships and immutable API-key rotation;storagefor folders, objects, upload sessions, and retrieval;transportfor Secret-backed SFTP imports, exports, and commands;agentsfor Agent and related AI operations permitted by the caller;utilsfor local encoding, hashing, identifiers, and other pure helpers;execute(code, options)for transient low-code execution with activelib.LibraryName.ElementKey.memberexports; passreadOnly: trueto restrict platform writes for that run. A hosted runtime cannot override an inherited restricted mode.batchfor configuring automatic runtime-call batching.
Choose a runtime mode
Revo-hosted
Custom Node.js receives an execution-bound
runtime from RevoEngine. No customer API key is exposed to component code.Standalone
A backend Node.js process constructs
RevoClient with an instance-bound API key.
The exported
RevoApi and RevoStandaloneApi types preserve this distinction.
Shared function pattern
Write reusable functions against the smallest runtime subset they need:RevoClient or the runtime injected into hosted init(runtime).
Contract behavior
The execution mode is immutable. PassreadOnly in sandbox/execute requests; api.enableDebug() and api.disableDebug() are removed. External HTTP remains real in read-only mode. Native service-account mutations use current IAM, management ACL, target rank and delegation checks. Key create/rotate return the usable credential once; metadata reads never recover it. See Service accounts.
SDK 1.6.7 matches the RevoEngine 1.6.5 platform contract. The SDK has an independent release version. Newly created hosted Components use this exact SDK version; existing deployed revisions retain their recorded version until redeployed with an updated configuration.
Use explicit HTTP requestType: 'storage' / responseType: 'storage' with flat source / target references, and named { scheduleFor } options for Automation scheduling. Live byte/SSE iterators stay inside V8 execution and cannot be returned through SDK calls.
Use transport.sftpImport, transport.sftpExport, and transport.sftpCommands for new SFTP code. Both hosted and standalone clients expose these methods with generated types. Legacy SFTP aliases and the removed thread-goal methods are excluded from the current SDK. See SFTP integrations and the 1.5.9 release notes.
For portable Component pins, use a verified componentDigest. Database reads and exports now use one relation namespace: api.exportDatabase() covers Databases, live Views, and Materialized Views. The former View-only read helper is a deprecated compatibility alias; api.exportDatabaseView() has been removed.
Database exports accept CSV, TSV, NDJSON, and XLSX. api.importDatabase() previews a Storage file and returns an operation to review before api.commitDatabaseImport() writes it; use api.updateDatabaseImportMapping() when columns need correction. See Database API for the lifecycle and generated methods for current signatures.
Remote calls use a versioned, generated contract and correlate every result by call ID. Deprecated low-code aliases and callback-based transaction methods are intentionally excluded. The SDK validates protocol and contract revisions and surfaces incompatible responses as protocol errors.
Remote MCP server definitions in SDK 1.6.7 accept public HTTPS destinations. Configure a Vault binding for credentials and review the discovered tools and their permissions before enabling the plugin. See MCP server plugins for the connection workflow.
Runtime method availability does not grant permission. Authentication, roles, instance boundaries, execution context, and platform policy are still enforced by RevoEngine.

