Skip to main content
RevoEngine low-code components run in a fresh, managed V8 runtime with an intentionally compact capability surface. TypeScript source is transpiled before the same runtime executes it. The environment is intentionally smaller than Node.js or a browser.

When to use low-code

Low-code is the default authoring model for request validation, business rules, Database work, HTTP integration, Storage processing, automation, and composition of active libraries. It keeps platform identity, deadlines, tracing, and generated editor types inside one governed execution. Choose Custom Node.js when the workload genuinely needs npm dependencies, a multi-file module, or Node-specific behavior. Choose a Job rather than an Endpoint when the work needs durable history, retry controls, or a longer execution budget.

Available globals

Runtime boundary

Standard ECMAScript features are available, but Node.js and browser APIs are not implied. Do not assume require, process, fetch, DOM objects, timers, Web Crypto, or Node core modules. Use the injected platform APIs instead.

Input, results, and composition

api.input() exposes the execution input prepared by the invoking Endpoint, Job, Sandbox run, nested Component, or other supported trigger. Ordered elements can read an earlier element through inject(elementKey). A Component result is the map of completed element outputs; the calling surface decides whether to return the complete map, one selected value, no body, or a durable history record.
Library paths are case-sensitive and always include category, library name, element key, and exported symbol.

Execution rules

  • Elements execute in ascending order.
  • Await asynchronous platform calls.
  • api.throw(status, body) stops with an HTTP-style response.
  • api.exit() stops successfully without a result.
  • Execution time and memory are bounded.
  • A child component receives a new bounded execution and inherits the remaining deadline.

Identity, errors, and side effects

Every platform call runs as the current execution principal. A method present in Monaco can still fail because an instance feature is disabled, a role is missing, or a Database, View, Storage folder, Secret, Agent, or other resource ACL denies access. Use api.throw(status, body) for an intentional application response. Unexpected exceptions fail the execution and are recorded by the calling surface. Timeouts and disconnects are ambiguous around external systems: a remote API may have accepted a write even when the caller did not receive a response. Use idempotency keys, keep remote I/O outside Database transactions, and verify consequential state before retry.

Move to production

  1. Validate inputs and reject unknown or untrusted fields.
  2. Bound reads, payload sizes, memory, time, and concurrency.
  3. Resolve Secrets only at the call site and redact diagnostic context.
  4. Test success, permission denial, timeout, duplicate delivery, and downstream failure.
  5. Activate the intended Component version and verify the real Endpoint or Job principal.
  6. Capture Execution ID and operation ID in safe logs and business records.
The generated editor declarations for your instance are the exact API contract. These guides explain how to choose and combine the surface; they do not duplicate every generated type.
Continue with Runtime API, Database API, HTTP and Storage, or the generated Low-code runtime reference.
Last modified on September 5, 2026