RevoEngine injects a RevoRuntime into the named init export of every Custom Node.js component. Component code does not construct RevoClient, discover an instance, or receive an API key.
Entrypoint
Existing JavaScript functions that declare no parameter remain callable, but accepting and typing runtime is the canonical form.
Execution context
Hosted snapshot methods are synchronous:
Only platform-backed work returns a promise. Never return or log a secret value.
Use active low-code libraries
execute() runs transient JavaScript or TypeScript inside RevoEngine with the active tenant lib.Category.Name.ElementKey.X surface:
Put related library operations in one execute() call when they form one workflow. Separate calls run in separate isolates.
Package contract
New components receive a generated package.json with the exact SDK version supported by the platform and editor declarations with the matching RevoRuntime type. Keep that exact version; do not replace it with a range.
The @revoengine/sdk/hosted entrypoint is platform-internal. Customer component code imports types and public exports only from @revoengine/sdk.
Hosted credential forwarding is owned by the generated parent runtime. Do not attempt to read, replace, or forward its internal transport headers from component code.
Deadlines and cancellation
Remote runtime calls inherit the signed execution deadline. When execution is cancelled or the parent bridge closes, unresolved calls fail. Cancellation is cooperative: verify consequential external writes before retrying.