v0.19.0
版本发布时间: 2023-09-14 14:47:54
novuhq/novu最新发布版本:v0.24.0(2024-03-18 17:44:43)
What’s new in Novu 0.19?
TL;DR: All you need to know about the latest Novu 0.19.0 release. Multi-tenancy management, bulk subscriber creation, override layouts and more!
0.19 Release Updates
We're eager to showcase the latest features in our most recent release. Let's dive in and discover what's in store for you!
Multi-tenancy Management
We are stoked to let you know that you can now manage tenants from the UI (Novu’s dashboard) and the API.
Self-hosted users need to add and turn on the IS_MULTI_TENANCY_ENABLED
env flag to be able to manage tenants in their Novu installation.
Tenants Usage in Workflows as Variables
With tenants feature now generally available, there are different ways you’ll be able to use it in your app depending on your use case.
One of those ways is using it as variables in your workflows and triggers. When triggering a notification using the events trigger endpoint, you can pass in a tenant property as a parameter like so:
import { Novu } from '@novu/node';
const novu = new Novu(process.env.NOVU_API_KEY);
await novu.trigger('<WORKFLOW_TRIGGER_ID>',
{
to: {
subscriberId: '<UNIQUE_SUBSCRIBER_IDENTIFIER>',
email: 'john@doemail.com',
firstName: 'John',
lastName: 'Doe',
},
payload: {
name: "Hello World",
organization: {
logo: 'https://happycorp.com/logo.png',
},
},
actor: "actorId"
tenant: "tenantIdentifier"
}
);
passing in tenant property when triggering a notification
The tenant can also be accessed in a workflow template like so:
{{ tenant.data.logo }}
accessing tenant properties in a workflow
Bulk Subscriber Creation
This release also ships the wildly requested “bulk subscriber creation.” Starting v0.19, you’ll be able to create subscribers in bulk (up to 500 at once) using an API endpoint.
Note: The bulk API is limited to 500 subscribers per request.
await novu.subscribers.bulkCreate([
{
subscriberId: 'test-subscriber-1',
email: 'test-user@sd.com',
firstName: 'subscriber-1',
lastName: 'test-1',
},
{
subscriberId: 'test-subscriber-2',
email: 'test-user-2@sd.com',
firstName: 'subscriber-2',
lastName: 'test-2',
},
{
subscriberId: 'test-subscriber-3',
},
]);
Addition of Tags in Workflow Settings
We have added the ability to use tags in the workflow settings screen.
This change allows use cases where you need to group multiple workflows under the same tag, and then use it to filter subscriber preferences for example.
Allow Override layout On Trigger
To override your assigned layout during a trigger event use the layoutIdentifier
property, the layout specified will be used for all emails in the context of that trigger event.
import { Novu } from '@novu/node';
const novu = new Novu('<NOVU_API_KEY>');
novu.trigger('workflow-identifier', {
to: {
subscriberId: '...',
},
payload: {
attachments: [
{
file: fs.readFileSync(__dirname + '/data/test.jpeg'),
name: 'test.jpeg',
mime: 'image/jpg',
},
],
},
overrides: {
layoutIdentifier: 'your-layout-identifier',
},
});
Show Primary Providers on Workflow Nodes
Now you can see the primary provider of a channel in the nodes that show on the workflow editor. This gives you more context and better identification without extra clicks!
Enhanced Workflow Nodes Misconfiguration Error
Nodes and workflows will now display mis-configured workflows on the dashboard like so:
All changes
- Nv 2474 styles tag css in email is not showing in few email clients by @davidsoderberg in https://github.com/novuhq/novu/pull/3978 - We now convert all email styles to inlince CSS for compatibility across browsers
- fix: so swagger json validates by @davidsoderberg in https://github.com/novuhq/novu/pull/3969 - Improved our swagger validation for the API Swagger data
- Reduce count 1000 to the db by @djabarovgeorge in https://github.com/novuhq/novu/pull/3993 - Breaking: For socket events we will return
hasMore
boolean field incase there are more than 100 results available. - feat: add tags for workflow settings by @scopsy in https://github.com/novuhq/novu/pull/4065 - Tags could now be added to workflows in the workflow settings page, once added they can be used later for usecases such as filtering the user preferences in the notification center
- Nv 2517 displays that workflow has nodes that will fail to send a notification by @BiswaViraj in https://github.com/novuhq/novu/pull/3966 - Nodes and workflows will now display mis-configured workflows
- feat: show providers on workflow nodes by @BiswaViraj in https://github.com/novuhq/novu/pull/3998 - Providers will be shown on nodes for better identifications
- feat: add override layout in trigger functionality by @ainouzgali in https://github.com/novuhq/novu/pull/3961 - You can now override the default layout using the
overrides
part of the trigger - feat(worker): remove performance svc as it was temporary by @p-fernandez in https://github.com/novuhq/novu/pull/3944
- Docs platform guide handlebars by @sumitsaurabh927 in https://github.com/novuhq/novu/pull/3833
- fix: sidebar intercepting workflow editor by @davidsoderberg in https://github.com/novuhq/novu/pull/3968
- feat(wip): initial bulk subscriber create by @ainouzgali in https://github.com/novuhq/novu/pull/3938
- Nv 2690 add identifier field to layouts scheme by @ainouzgali in https://github.com/novuhq/novu/pull/3956
- feat(ci): reuse instructions to tidy up pipelines by @p-fernandez in https://github.com/novuhq/novu/pull/3975
- feat: migration script to add identifier to layouts by @ainouzgali in https://github.com/novuhq/novu/pull/3967
- feat(ci): separate the swagger validation in own runner plus improvement by @p-fernandez in https://github.com/novuhq/novu/pull/3981
- fix(ci): indenting action by @p-fernandez in https://github.com/novuhq/novu/pull/3984
- patch : remove rows only when steps are truthy by @djabarovgeorge in https://github.com/novuhq/novu/pull/3980
- Update ReadMe to include Java SDK link by @mayorJAY in https://github.com/novuhq/novu/pull/3974
- Add Analytics call to Track Deletion of Templates by @Cliftonz in https://github.com/novuhq/novu/pull/3971
- feat add organization id index in integration by @djabarovgeorge in https://github.com/novuhq/novu/pull/3983
- fix: so add a provider is not displayed in empty state by @davidsoderberg in https://github.com/novuhq/novu/pull/3985
- feat(ci): reusable action to run backend (api, worker) for clients by @p-fernandez in https://github.com/novuhq/novu/pull/3991
- fix(ci): proper settings for secrets for run backend by @p-fernandez in https://github.com/novuhq/novu/pull/3992
- Changed the sidebar position of Python by @bcsamrudh in https://github.com/novuhq/novu/pull/3997
- docs: add nestjs quickstart guide by @michaldziuba03 in https://github.com/novuhq/novu/pull/3747
- fix: remove github discussion link by @jainpawan21 in https://github.com/novuhq/novu/pull/4002
- feat: fix logger error order by @djabarovgeorge in https://github.com/novuhq/novu/pull/4003
- fix: add missing sharable url in the new integration form by @djabarovgeorge in https://github.com/novuhq/novu/pull/3986
- next fix logger error order by @djabarovgeorge in https://github.com/novuhq/novu/pull/4006
- clean patch - execution details no write concern by @djabarovgeorge in https://github.com/novuhq/novu/pull/4008
- optimization : merge two redis calls in api key authenticate by @djabarovgeorge in https://github.com/novuhq/novu/pull/3982
- Fix failing test for web and widget by @scopsy in https://github.com/novuhq/novu/pull/4009
- NV-3541 - 🐛 Bug Report: Novu Notification Center Closing Issue on iFrame Embed by @gitstart in https://github.com/novuhq/novu/pull/3950
- feat: add scheduled ⏰ digest documentation and images by @jainpawan21 in https://github.com/novuhq/novu/pull/3800
- feat: execution detail no write concern by @djabarovgeorge in https://github.com/novuhq/novu/pull/4004
- Fix: Add Redis password into docker-compose and sample env by @harrisyn in https://github.com/novuhq/novu/pull/3999
- feat(types): create enum for the web socket events by @p-fernandez in https://github.com/novuhq/novu/pull/3996
- [NV-2719] feat: add tenant support node sdk by @ainouzgali in https://github.com/novuhq/novu/pull/3990
- Nv 2403 tenant id trigger engine integration by @ainouzgali in https://github.com/novuhq/novu/pull/3994
- fix: invalid import - process tenant by @ainouzgali in https://github.com/novuhq/novu/pull/4019
- feat: add product lead component by @davidsoderberg in https://github.com/novuhq/novu/pull/4012
- feat: move tabs state to routes by @davidsoderberg in https://github.com/novuhq/novu/pull/4027
- [patch] - nv 2701 - bug report cannot create custom smtp integration by @djabarovgeorge in https://github.com/novuhq/novu/pull/4015
- Refactor branding tabs to routes by @davidsoderberg in https://github.com/novuhq/novu/pull/4029
- docs: add push webhook provider docs by @jainpawan21 in https://github.com/novuhq/novu/pull/4032
- NV-3973 - 🐛 Bug Report: invalid netcore logo by @gitstart in https://github.com/novuhq/novu/pull/4034
- feat: refactor add job logs by @djabarovgeorge in https://github.com/novuhq/novu/pull/4011
- feat: upgrade node mailjet version by @scopsy in https://github.com/novuhq/novu/pull/4036
- Upgrade FCM package by @scopsy in https://github.com/novuhq/novu/pull/4041
- Fix cypress json error by @davidsoderberg in https://github.com/novuhq/novu/pull/4028
- Docs: Add Quickstart guide for Go by @olumidayy in https://github.com/novuhq/novu/pull/3842
- Upgrade nestjs to version 10 by @scopsy in https://github.com/novuhq/novu/pull/4042
- nv-2661 upgrade new relic agent to latest version by @scopsy in https://github.com/novuhq/novu/pull/4052
- fix: critical vulnerability in vm2 imported by inline css by @scopsy in https://github.com/novuhq/novu/pull/4053
- NV-1959B - 🐛 Bug Report: The Notification Center isn't mobile responsive by @gitstart in https://github.com/novuhq/novu/pull/3948
- Update Queue metrics accuracy by @Cliftonz in https://github.com/novuhq/novu/pull/3402
- chore: remove unused cz vulnerable packages by @scopsy in https://github.com/novuhq/novu/pull/4055
- chore(deps-dev): bump vite from 4.2.1 to 4.2.3 by @dependabot in https://github.com/novuhq/novu/pull/3894
- Revert "Update Queue metrics accuracy" by @Cliftonz in https://github.com/novuhq/novu/pull/4058
- chore: upgrade socket packages due to high vulnerability by @scopsy in https://github.com/novuhq/novu/pull/4059
- nth check vulnerable package by @scopsy in https://github.com/novuhq/novu/pull/4061
- fix: make integration identifier optional by @jainpawan21 in https://github.com/novuhq/novu/pull/4062
- fix(api): clear the primary and priority fields when novu integration is disabled by @LetItRock in https://github.com/novuhq/novu/pull/4045
- fix(web): delete primary integration - show the select primary modal when there are active integrations by @LetItRock in https://github.com/novuhq/novu/pull/4017
- feat(dal): change the month add and sub for days add and sub by @p-fernandez in https://github.com/novuhq/novu/pull/4071
- Java Quickstart by @Basfar in https://github.com/novuhq/novu/pull/4033
- Revert "NV-1959B - 🐛 Bug Report: The Notification Center isn't mobile responsive" by @LetItRock in https://github.com/novuhq/novu/pull/4074
New Contributors
- @bcsamrudh made their first contribution in https://github.com/novuhq/novu/pull/3997
- @olumidayy made their first contribution in https://github.com/novuhq/novu/pull/3842
- @dependabot made their first contribution in https://github.com/novuhq/novu/pull/3894
- @Basfar made their first contribution in https://github.com/novuhq/novu/pull/4033
Full Changelog: https://github.com/novuhq/novu/compare/v0.18.0...v0.19.0