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 assumerequire, 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.
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. Useapi.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
- Validate inputs and reject unknown or untrusted fields.
- Bound reads, payload sizes, memory, time, and concurrency.
- Resolve Secrets only at the call site and redact diagnostic context.
- Test success, permission denial, timeout, duplicate delivery, and downstream failure.
- Activate the intended Component version and verify the real Endpoint or Job principal.
- 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.

