The Client is an optional Class you can pass to the serve function to override some global settings. By default, we will inject a new instance of the Client class in your serve method with the following defaults:

Client Interface

secretKey
string
default: "process.env.NOVU_SECRET_KEY"

Your Novu Secret Key, used to sign the HMAC header to guarantee the authenticity of our requests.

strictAuthentication
boolean
default: "process.env.NODE_ENV !== 'development'"

This bypasses the HMAC signature verification, required for local development and testing against Local Studio.

Environment Variables

Unless specified in the Client constructor the Client class will look for the following environment variables:

  • NOVU_SECRET_KEY - Your Novu Secret Key
  • NOVU_API_URL - Defaults to https://api.novu.co. For EU customers, this should be set to https://eu.api.novu.co.

Development Environment

When your service is running in development mode process.env.NODE_ENV=development, the following rules will auto apply:

  • strictAuthentication will be set to false.

Code Example

import { Client as NovuFrameworkClient } from "@novu/framework";
import { serve } from "@novu/framework/next";
import { passwordResetWorkflow } from "./workflows";

export const { GET, POST, OPTIONS } = serve({
  client: new NovuFrameworkClient({
    secretKey: process.env.NOVU_SECRET_KEY || "ACTUAL_NOVU_SECRET_KEY_VALUE",
    strictAuthentication: false,
  }),
  workflows: [
    /* all workflows */
    passwordResetWorkflow
  ],
});