Checkly allows you to use JavaScript code in your Browser checks, MultiStep Checks and in the optional setup & teardown scripts you can add to your API checks.This JavaScript code executes in a runtime environment that is managed by Checkly. This environment has access to specific Node.js versions and NPM packages, like the “latest Playwright version on Node 14”. We call these environments runtimes.
Before updating your Checkly account to a new runtime, you can enable a newer runtime just for one check or check group. This is a very powerful way to make sure your checks are compatible with a new runtime.You can:
Select a specific runtime in the Browser check editor.
Select a specific runtime in the “Setup & teardown” tab for each API check.
Select a specific runtime on the “Runtimes” tab for each check group.
Overriding the global, account level runtime for a handful of checks is the recommended way to check for any compatibility issues before committing to a new, global runtime. Note the hierarchy: check runtime trumps group runtime trumps global account runtime.
We ship new runtimes with a regular cadence. This is what you can expect from us:1. Major & minor version upgrades of core packages and Node.js versionsWe aim to release a new runtime that holds the major and minor upgrades of Playwright and Node.js every quarter. This will result in a new, named runtime e.g. 2023.03 available in the Checkly webapp and in our API.2. Patch releases and security patchesWe reserve the right to update an existing runtime with critical security patches if deemed necessary. We will only do this if there are no known backwards compatibility issues.
We introduced the concept of runtimes so customers can upgrade their JavaScript enhanced checks to more recent Node package versions in a controlled fashion; and roll back if anything breaks! Before, this was a more risky “big bang” migration.
Why can’t I import any NPM package or other 3rd party dependencies?
Currently, Checkly is not a full-blown CI system, where a user has full control over the Node.js version and the packages installed in the node_modules directory. To help you navigate this tradeoff, we want to show you exactly what happens under the hood.
We bundle all your user code when using the Checkly CLI or GitHub Sync before storing your Check in our database.
Your Check is scheduled to our 20+ global locations via a message bus that has a 256kb file size limit. This is in 99%
of the cases more than enough for any user code and included file dependencies you may include. However, it is not enough for potentially unlimited
NPM dependencies living in node_modules.
The Checkly Runtime prepackages common 3rd party NPM modules and defines the Node.js version to avoid building, transferring and caching potentially each Check across multiple Node.js versions, greatly reducing complexity.
Our provided Runtime packages are tested with our sandboxing for extra runtime security.