A serverless function development runtime that can be used to test CMS serverless functions. This is intended for use with the HubSpot CLI.
For more information on using these tools, see Local Development Tooling: Getting Started.
Using the CLI to run serverless functions locally, requires installing @hubspot/cli. Once installed, to test your functions run…
hs functions test <folder.functions>
It also is possible to use the runtime inside your own tooling. To start the server, the start
method can be imported from the @hubspot/serverless-dev-runtime
package and run with settings like so...
const { start } = require('@hubspot/serverless-dev-runtime');
start({
accountId: <portalId/accountId>, // default: 123456
contact: <booleanValueToSpecifyIfContactDataShouldBePassedToServerlessFunction>, // default: true
path: <pathToLocalDotFunctionsFolder>, // required
port: <customPortToRunServerOn> // default: 5432
});
Some of the data that is passed to the serverless function context is mocked. Specifically the contact
and limits
properties. It is possible
to modify the mocked data by setting values for specific variables within a .env
file within the .functions
folder.
The variables used to modify the data are:
HUBSPOT_LIMITS_TIME_REMAINING // default: 600000
HUBSPOT_LIMITS_EXECUTIONS_REMAINING // default: 60
HUBSPOT_CONTACT_VID // default: 123
HUBSPOT_CONTACT_IS_LOGGED_IN // default: false
HUBSPOT_CONTACT_LIST_MEMBERSHIPS // default: []
Usage example .env
:
HUBSPOT_LIMITS_TIME_REMAINING=1000
HUBSPOT_LIMITS_EXECUTIONS_REMAINING=2
HUBSPOT_CONTACT_VID=456
HUBSPOT_CONTACT_IS_LOGGED_IN=true
HUBSPOT_CONTACT_LIST_MEMBERSHIPS="some, memberships"