DEV Community

Prosper Otemuyiwa for novu

Posted on

What's new in Novu 0.23?

TL;DR: All you need to know about the latest Novu 0.23.0 release. Translation management, Performance updates, and more!

0.23 Release Updates

We're excited to highlight the newest features introduced in our latest release. Join us as we explore what awaits you!

Explore!

Translation Management

💡 Note: This feature is only available for Novu Cloud for Business and Enterprise Clients.

The translation management feature allows users to create, upload, and edit translation groups and files from the Novu dashboard.

It’s new and we’re excited for you to start using it in your apps!

Translation management

Translation management - second

Translation management - third

With this feature comes a new handlebar helper for translations, {{ i18n ... }}.

Novu users can now translate their notification templates to different languages using the i18n handlebar helper and the translation keys in the editor.

Translation management Alpha

Support for Non-Root User (UID 1000)

In our continued effort to enhance security and compatibility in enterprise environments, we are proud to announce a significant update aimed at supporting systems with restricted root access.

Key Features:

Non-Root User Support: Novu now officially supports deployment under a non-root user with a fixed UID of 1000. This update is crucial for enterprise deployments on systems that enforce strict no-root policies, ensuring compliance with security best practices.
Seamless Integration: This enhancement facilitates smoother integration of Novu into secure environments, reducing the need for workarounds or exceptions in security policies.
Enhanced Security: Running Novu under a non-root user reduces potential security risks and aligns with the principle of least privilege, further safeguarding our notification infrastructure.

Getting Started:

No action is required from your side to take advantage of this update. The changes have been seamlessly integrated into Novu, ensuring that your enterprise deployments comply with non-root user policies without any additional configuration needed.

ARM Image Support

We're thrilled to share that Novu has officially introduced support for ARM images, marking a significant step in our dedication to embracing innovation and responsibility within the tech landscape. This development ensures that Novu stays ahead in the realm of notification infrastructure by broadening our platform's accessibility, compatibility, and sustainability.

Key Highlights:

ARM Architecture Support: Users can now deploy Novu on systems powered by ARM processors, benefiting from the efficiency and performance improvements that ARM architectures offer.
Optimized Performance: ARM support brings optimized performance for ARM-based deployments, ensuring faster and more efficient notification processing.

Getting Started with ARM Images:

To use Novu on an ARM-based system, simply pull the ARM-compatible Docker image from our registry. If you are on a not a ARM based system you can use the following command in docker to pull the image.

docker pull --platform linux/arm64 ghcr.io/novuhq/novu:v0.23.0
Enter fullscreen mode Exit fullscreen mode

💡Note: Emulating ARM hardware may be slower then running an ARM image on ARM hardware.

Deprecation of Original Notifire Packages

Novu has evolved so much from when it was originally created. On the release of v0.24.0, we will be deprecating the original Notifire packages hosted on GitHub and any package within the @notifire namespace on NPM.

The following packages hosted on GitHub under the novuhq organization are scheduled for deprecation:

Deprecated Packages

  1. Notifire WebSocket Package (notifire/ws)
  2. Notifire Widget Package (notifire/widget)
  3. Notifire SDK Package (notifire/sdk)
  4. Notifire Web Package (notifire/web)
  5. Notifire API Package (notifire/api)

Notifire

NPM Namespace Deprecation

All packages within the @notifire namespace on NPM are also scheduled for deprecation. This includes any package prefixed with @notifire/, ensuring a comprehensive and clear transition away from these older offerings.

Notifire namespace deprecation

Users currently relying on these deprecated packages should promptly transition to the official @novu packages.

Field-level Encryption to API Keys

We're security conscious at Novu. The API keys are now encrypted at rest in the database and hashed at rest in the cache.

We added this security feature to prevent direct use of the API key in the event of a database breach or bad actor trying to use the key with bad intentions.

Note: All existing API keys become encrypted through a data migration script for self-hosted users. Running the script more than once does not re-encrypt the api keys.

Bulk Delete Notifications in Notification Center

Users can now remove multiple notifications using an array of message ids (limit of 100) via the Notification center hooks and Headless library.

Notification Center hooks

const onSuccess = (data: IMessage) => {};

const onError = (error: Error) => {};

const { removeNotifications, isLoading, isError, error } = useRemoveNotifications({
  onSuccess,
  onError,
});
Enter fullscreen mode Exit fullscreen mode

Headless

headlessService.removeNotifications({
  listener: (
    result: UpdateResult<IMessage, unknown, { messageId: string }>
  ) => {
    console.log(result);
  },
  onSuccess: (message: IMessage) => {
    console.log(message);
  },
  onError: (error: unknown) => {
    console.error(error);
  },
  messageIds: ["message_id_1", "message_id_2" ],
});
Enter fullscreen mode Exit fullscreen mode

Rocket Chat Provider Integration

You can now send Chat messages via the Rocket Chat provider integration:

Rocket chat

Brevo (SendInBlue) SMS Provider Integration

You can now send SMS messages via the Brevo SMS provider integration:

Brevo SMS

iSend SMS Provider Integration

You can now send SMS via the iSend sms provider integration:

iSend SMS

CustomData Overrides for SMS

A customData overrides provider for SMS now exists. This property allows us to support provider specific configurations in future for SMS providers.

For now, it only supports DLT (Distributed Ledger Technology) for the Gupshup SMS provider.

Trigger workflow with customData

novu.trigger("gupshup-workflow", {
  to: {
    subscriberId: "1234",
  },
  payload: {
    user: "Viraj",
  },
  overrides: {
    sms: {
      customData: {
        principalEntityId: "principal entity Id",
        dltTemplateId: "dlt template Id",
      },
    },
  },
});
Enter fullscreen mode Exit fullscreen mode

Email Editor Variables Auto-suggestion Dropdown

We've made a little adjustment to the workflow email editor to enhance user experience by including auto-suggestions while adding variables.

This feature greatly minimizes the chance of selecting the wrong variable and having incorrect template content.

email auto-suggestion

All Changes

You can find the full changelog on GitHub.

Conclusion

Sign up on Novu, try it out & let me know what you think about the new changes in the comments section.

If you want to contribute to OSS and make an impact, I believe it is a great place to start & build out amazing things.

Oh, remember to star the repo as well.🤩 See you in the next release! 🚀

Top comments (2)

Collapse
 
wh1337 profile image
wh1337

Novu just getting better and better with each release!

Collapse
 
unicodeveloper profile image
Prosper Otemuyiwa

Thank you so much!