v0.17.1
版本发布时间: 2023-08-10 16:21:29
novuhq/novu最新发布版本:v0.24.0(2024-03-18 17:44:43)
What’s new in Novu 0.17.1?
TL;DR: All you need to know about the latest Novu 0.17.1 release. Multi-provider Integration support, Multi-tenancy support, cookbook, notification center updates and more!
0.17.1 Release Updates
We're excited to unveil the freshest developments in our latest release. Let's plunge right in and uncover what awaits you!
Multi-provider Integration Support (BETA)
Now you can connect multiple providers per channel and make them active. This feature is currently in beta.
We also redesigned the Integrations store page to make it more intuitive in selecting & enabling channel providers.
With this feature, you can now do the following:
Specify the provider you want when triggering notifications. Add the integrationIdentifier
to the overrides
object for the specific channel.
await novu.trigger("<workflow_trigger_id>", {
to: {...},
payload: {...},
overrides: {
email: { integrationIdentifier: 'the identifier"} ,
sms: { integrationIdentifier: 'the identifier"}
}
If you're self-hosting Novu, you'll need to pass the env flag, IS_MULTI_PROVIDER_CONFIGURATION_ENABLED
to all services.
Note: In the nearest future, you will be allowed to select a provider based on a tenant and other execution conditions.
Multi-tenancy Support (BETA)
We've been hard at work building the base flow, API and processes to support multi-tenancy. This feature is currently in beta testing. It will become generally available in the next release.
Delete Provider Credentials API
We have added support to delete a provider credentials via [an API endpoint](https://docs.novu.co/api/delete-subscriber-credentials-by-providerid/).
[PR here for reference](https://github.com/novuhq/novu/pull/3516)
Remove All Messages In Notification Center Widget & Headless Service
The Notification Center widget allows users to see all notification messages. Before now, you can only delete messages one after the other.
There are a few notable updates:
- We have added a useRemoveAllNotification hook in the React Notification Center widget. You can remove all notifications from a feed or entirely!
- We have also added a
removeAllNotifications
method to the headless service.
Additional Handlebar helpers
We have added a unique
and groupBy
handlebar helpers.
- unique: To remove duplicates in array iteration
{{#each (unique names "name")}}
--<b>{{this}}</b>---
{{/each}}
- groupBy: To group array values by property
{{#each (groupBy names "name")}}
<h1>{{key}}<h1>
{{#each items}}
{{age}}-
{{/each}}
{{/each}}
Notification Feed Page Size Changes (BREAKING CHANGE)
By default, the notification feed page will return 100 notifications and return a hasMore
field if more than 100 notifications exist.
Activity Feed & Subscriber API Changes (BREAKING CHANGE)
The Activity Feed & Subscriber API will no longer return totalCount
. Due to performance optimizations, they will return a hasMore
boolean flag in cases where there are more results to fetch.
listenNotificationReceive in Headless Service.
We have added a new function, listenNotificationRecieve
, to listen to when a new notification comes in!
It can be used to retrieve a new notification in real-time and trigger UI changes.
headlessService.listenNotificationReceive({
listener: (message: IMessage) => {
console.log(JSON.stringify(message));
},
});
Sendchamp SMS Provider Integration
Now, you can use the Sendchamp SMS provider on Novu.
Update on Workers
Workers will now wait for health check to pass before accepting jobs to process, and will perform a graceful shutdown on a terminate signal received by the service manager.
Docs, Cookbook & Guides
We currently offer [quickstart guides](https://docs.novu.co/overview/quickstart/general-quickstart) for a wide range of major languages and technologies. Feel free to explore these guides to swiftly begin your projects in your preferred programming language.
We have added a [Cookbook section](https://docs.novu.co/cookbook/introduction) to our docs to provide recipes on common tasks.
All Changes
- fix: add delete provider credentials endpoint by @jainpawan21 in https://github.com/novuhq/novu/pull/3516
- feat: add remove all messages endpoint in widget by @jainpawan21 in https://github.com/novuhq/novu/pull/3523
- feat: add transactionId filter in get messages by @jainpawan21 in https://github.com/novuhq/novu/pull/3619
- feat: add ip pool override for sendgrid by @djabarovgeorge in https://github.com/novuhq/novu/pull/3646
- feat: add removeAllMessages function in react nc by @jainpawan21 in https://github.com/novuhq/novu/pull/3643
- feat: add unique handlebar helper by @jainpawan21 in https://github.com/novuhq/novu/pull/3717
- feat: add group by handlebar helper by @jainpawan21 in https://github.com/novuhq/novu/pull/3749
- Nv 2405 workflows crud controller by @BiswaViraj in https://github.com/novuhq/novu/pull/3745
- fix: add mark message read method in node sdk by @jainpawan21 in https://github.com/novuhq/novu/pull/3807
- feat(headless): add listen to notification_received in headless service by @iv-stpn in https://github.com/novuhq/novu/pull/3834
- BREAKING: Default notification feed page size is changed to 100, and will return a
hasMore
field if more than 100 notifications exist @davidsoderberg in https://github.com/novuhq/novu/pull/3631 - BREAKING: Due to performance optimizations Activity feed and subscriber API, will no return totalCount, but a
hasMore
boolean flag in case there are more results to fetch. - Nv 2578 add removeallnotifications method in headless package by @BiswaViraj in https://github.com/novuhq/novu/pull/3829
- chore(deps): update react monorepo by @renovate in https://github.com/novuhq/novu/pull/3605
- feat(infra): pause workers in bootstrap until queues are ready by @p-fernandez in https://github.com/novuhq/novu/pull/3396
- fix: Update Subscribers API allowing null by @jayavardhan3112 in https://github.com/novuhq/novu/pull/3169
- fix(deps): update dependency rxjs to v7.8.1 by @renovate in https://github.com/novuhq/novu/pull/3607
- chore(deps): update react monorepo by @renovate in https://github.com/novuhq/novu/pull/3609
- feat: add popular template by @djabarovgeorge in https://github.com/novuhq/novu/pull/3612
- feat: add feature flag check for deactive integrations by @davidsoderberg in https://github.com/novuhq/novu/pull/3618
- NV-2225 - 🐛 Bug Report: Visual bug - dual scroll in integration configuration modal by @gitstart in https://github.com/novuhq/novu/pull/3439
- feat(notification-center): smaller bundle size by @LetItRock in https://github.com/novuhq/novu/pull/3621
- feat(web): the table skeleton loading by @LetItRock in https://github.com/novuhq/novu/pull/3628
- docs: Add Termii provider documentation by @peoray in https://github.com/novuhq/novu/pull/3635
- NV-2457 - Create Tenant Repository by @djabarovgeorge in https://github.com/novuhq/novu/pull/3620
- Nv 2458 - Add Tenant Create Usecase by @djabarovgeorge in https://github.com/novuhq/novu/pull/3623
- NV 2459 - Get Tenant By ID Endpoint by @djabarovgeorge in https://github.com/novuhq/novu/pull/3629
- feat(dal): update integration entity schema for multi provider by @p-fernandez in https://github.com/novuhq/novu/pull/3625
- feat: add feature flag for multi-provider configuration by @davidsoderberg in https://github.com/novuhq/novu/pull/3617
- Add IP Pool Name In Integration by @djabarovgeorge in https://github.com/novuhq/novu/pull/3647
- fix: update how to add new provider docs by @jainpawan21 in https://github.com/novuhq/novu/pull/3653
- 🐛 CreateNotificationJobCommand fix - update templateProviderIds Map to Record. by @djabarovgeorge in https://github.com/novuhq/novu/pull/3614
- feat: refactor template preference logic by @djabarovgeorge in https://github.com/novuhq/novu/pull/3596
- Add citation file for any academic research that uses Novu by @Cliftonz in https://github.com/novuhq/novu/pull/3652
- fix(ci): debugging cypress by @p-fernandez in https://github.com/novuhq/novu/pull/3669
- NV 2418 - Integration Selection Caching by @djabarovgeorge in https://github.com/novuhq/novu/pull/3666
- Nv 2460 - Update Tenant Endpoint by @djabarovgeorge in https://github.com/novuhq/novu/pull/3638
- Add better Uptime Annoucement for System issues by @Cliftonz in https://github.com/novuhq/novu/pull/3664
- Reuse existing env variables that denotates cloud hosted instead of a new one by @Cliftonz in https://github.com/novuhq/novu/pull/3676
- Adding github actions to assist PR management and SLAs by @Cliftonz in https://github.com/novuhq/novu/pull/3651
- feat(web): integrations list page by @LetItRock in https://github.com/novuhq/novu/pull/3644
- feat(api): update get integrations endpoints by @p-fernandez in https://github.com/novuhq/novu/pull/3650
- feat: select integration usecase by @BiswaViraj in https://github.com/novuhq/novu/pull/3660
- chore(web): use is_multi_provider_configuration_enabled feature flag by @LetItRock in https://github.com/novuhq/novu/pull/3654
- feat(docs): Add Infobip SMS provider documentation by @peoray in https://github.com/novuhq/novu/pull/3636
- NV 2461 - Delete Tenant Endpoint by @djabarovgeorge in https://github.com/novuhq/novu/pull/3639
- NV 2466 - Get Tenant List by @djabarovgeorge in https://github.com/novuhq/novu/pull/3641
- feat: add sort function for providers by @davidsoderberg in https://github.com/novuhq/novu/pull/3692
- fix(deps): update dependency styled-components to v5.3.11 by @renovate in https://github.com/novuhq/novu/pull/3611
- chore(deps): update commitlint monorepo to v17.6.6 by @renovate in https://github.com/novuhq/novu/pull/3694
- chore(deps): update dependency @nestjs/cli to v9.5.0 by @renovate in https://github.com/novuhq/novu/pull/3695
- chore(api,worker): use select integration usecase before we do a send by @LetItRock in https://github.com/novuhq/novu/pull/3662
- Nv 2430 the update integration sidebar by @davidsoderberg in https://github.com/novuhq/novu/pull/3680
- Nv 2426 the create integration sidebar by @ainouzgali in https://github.com/novuhq/novu/pull/3673
- chore(api,worker): use feature flag when selecting the integration during the send phase by @LetItRock in https://github.com/novuhq/novu/pull/3677
- feat: add logging and restart to docker compose by @harrisyn in https://github.com/novuhq/novu/pull/3697
- feat(api): update the post, put integration endpoints to allow passing the name, identifier, skip passing credentials by @LetItRock in https://github.com/novuhq/novu/pull/3674
- NV2402 - [STACKED PR's] Tenancy CRUD API by @djabarovgeorge in https://github.com/novuhq/novu/pull/3682
- feat(web): integrations list page show novu integrations by @LetItRock in https://github.com/novuhq/novu/pull/3693
- fix(notification-center): changed the popover prop name for the web-component by @LetItRock in https://github.com/novuhq/novu/pull/3712
- feat: add integration scheme migration script by @djabarovgeorge in https://github.com/novuhq/novu/pull/3668
- Update docusaurus.config.js by @iampearceman in https://github.com/novuhq/novu/pull/3721
- feat: add name field to update sidebar by @ainouzgali in https://github.com/novuhq/novu/pull/3714
- feat: search empty state by @ainouzgali in https://github.com/novuhq/novu/pull/3713
- fix: aggregation of events by digest key, fix nested digest key by @ainouzgali in https://github.com/novuhq/novu/pull/3722
- chore(api,worker): chat oauth flow allow to provide the integration identifier by @LetItRock in https://github.com/novuhq/novu/pull/3699
- Nv 2431 integrate the create/update integration sidebar with api by @ainouzgali in https://github.com/novuhq/novu/pull/3705
- fix: remove undefined ip pool name by @djabarovgeorge in https://github.com/novuhq/novu/pull/3735
- fix: digest and delay values are reset to default values on update by @ainouzgali in https://github.com/novuhq/novu/pull/3734
- fix(api): expose api keys only for current environment by @michaldziuba03 in https://github.com/novuhq/novu/pull/3640
- fix: k8s component labels hard coded by @aexei in https://github.com/novuhq/novu/pull/3731
- fix: helm values.yaml missing web endpoints by @aexei in https://github.com/novuhq/novu/pull/3732
- fix: web deployment using wrong NODE_ENV by @aexei in https://github.com/novuhq/novu/pull/3733
- format code with prettier by @deepsource-autofix in https://github.com/novuhq/novu/pull/3744
- fix(worker): fixed the fcm data message issue with payload messed with additional data by @LetItRock in https://github.com/novuhq/novu/pull/3743
- chore(deps): update dependency stylelint to v15 [security] by @renovate in https://github.com/novuhq/novu/pull/3748
- fix: mark popover as deprecated by @jainpawan21 in https://github.com/novuhq/novu/pull/3752
- feat(worker): store only minimal job info instead of full job by @p-fernandez in https://github.com/novuhq/novu/pull/3706
- feat: Helm Repo by @aexei in https://github.com/novuhq/novu/pull/3730
- chore(deps): update microsoft/pr-metrics action to v1.5.4 by @renovate in https://github.com/novuhq/novu/pull/3757
- fix(worker): set the proper argument order in the logger error function by @p-fernandez in https://github.com/novuhq/novu/pull/3756
- feat: add execution details item for the selected integration by @ainouzgali in https://github.com/novuhq/novu/pull/3754
- fix(notification-center): remove storybook testing library by @p-fernandez in https://github.com/novuhq/novu/pull/3758
- fix(deps): update dependency docusaurus-plugin-sass to v0.2.4 by @renovate in https://github.com/novuhq/novu/pull/3759
- fix: add ITriggerOverrideExpo type by @birdgg in https://github.com/novuhq/novu/pull/3658
- feat: add update sidebar for novu providers by @davidsoderberg in https://github.com/novuhq/novu/pull/3723
- chore(deps): update dependency @vue/tsconfig to ^0.4.0 by @renovate in https://github.com/novuhq/novu/pull/3760
- feat: add delete integration ui by @davidsoderberg in https://github.com/novuhq/novu/pull/3727
- fix(notification-center-vue): revert the @vue/tsconfig lib update by @LetItRock in https://github.com/novuhq/novu/pull/3765
- refactor: rename dtos to workflow, and other minor changes by @BiswaViraj in https://github.com/novuhq/novu/pull/3761
- [NV-2437] bug - Union received device tokens by @djabarovgeorge in https://github.com/novuhq/novu/pull/3716
- chore(deps): update dependency karma-chrome-launcher to ~3.2.0 by @renovate in https://github.com/novuhq/novu/pull/3762
- feat(web): integrations sidebar for the novu in-app by @LetItRock in https://github.com/novuhq/novu/pull/3740
- NV-2446 - 🐛 Bug Report: Workflows visual bug by @gitstart in https://github.com/novuhq/novu/pull/3630
- feat(infra): consolidate usage of redis instance by bull-mq by @p-fernandez in https://github.com/novuhq/novu/pull/3772
- fix: notification template dual state by @michaldziuba03 in https://github.com/novuhq/novu/pull/3642
- Nv 2569 update provider instances display in the provider tab of the by @davidsoderberg in https://github.com/novuhq/novu/pull/3778
- Content is changed in two sms steps with a delay in between. by @djabarovgeorge in https://github.com/novuhq/novu/pull/3780
- fix(infra): provider generator should have version 0.16.3 by @p-fernandez in https://github.com/novuhq/novu/pull/3790
- fix: node uses non existing endpoint by @ainouzgali in https://github.com/novuhq/novu/pull/3781
- NV-2420 - Update the active integrations endpoint by @djabarovgeorge in https://github.com/novuhq/novu/pull/3681
- fix: export TriggerRecipientsTypeEnum in Node.js SDK by @michaldziuba03 in https://github.com/novuhq/novu/pull/3795
- fix(web,shared): added missing novu providers to the providers array by @LetItRock in https://github.com/novuhq/novu/pull/3774
- fix: export missing enums in node sdk for create template by @jainpawan21 in https://github.com/novuhq/novu/pull/3793
- NV-3571 - 🐛 Bug Report: tls options should be hidden when ignore tls has been selected and default value should be {}. by @gitstart in https://github.com/novuhq/novu/pull/3715
- fix: webhook enabled if app is not self-hosted by @djabarovgeorge in https://github.com/novuhq/novu/pull/3782
- Fix register error by @ainouzgali in https://github.com/novuhq/novu/pull/3804
- feat(web): multi channel provider config - integrations list modal by @LetItRock in https://github.com/novuhq/novu/pull/3791
- chore(web): integrations list sidebar e2e tests by @LetItRock in https://github.com/novuhq/novu/pull/3798
- chore(web): email editor and preview show correct sender name by @LetItRock in https://github.com/novuhq/novu/pull/3801
- fix(deps): update dependency mongoose to v6.11.3 [security] by @renovate in https://github.com/novuhq/novu/pull/3818
- Docs next js quickstart update by @sumitsaurabh927 in https://github.com/novuhq/novu/pull/3799
- Nv 2434 update workflow sets variables to default value by @ainouzgali in https://github.com/novuhq/novu/pull/3819
- fix(api,application-generic): active integrations endpoint fixes by @LetItRock in https://github.com/novuhq/novu/pull/3809
- fix: flaky test because first sms step was not being added by @ainouzgali in https://github.com/novuhq/novu/pull/3823
- feat(app-generic): add cluster mode e2e tests for cache service by @p-fernandez in https://github.com/novuhq/novu/pull/3811
- fix(web): intercom launcher floating button overflows the integrations sidebar by @LetItRock in https://github.com/novuhq/novu/pull/3821
- fix: updated the types and onsuccess method by @BiswaViraj in https://github.com/novuhq/novu/pull/3824
- test: skip failing test until we can control feature flag in worker by @ainouzgali in https://github.com/novuhq/novu/pull/3828
- feat(provider): Add Sendchamp SMS provider integration by @peoray in https://github.com/novuhq/novu/pull/3656
- chore(web): eslint react hook rules (part 1) by @LetItRock in https://github.com/novuhq/novu/pull/3816
- feat(docs): Add sendchamp provider documentation by @peoray in https://github.com/novuhq/novu/pull/3719
- Docs(chore): Add cookbook with few recipes by @unicodeveloper in https://github.com/novuhq/novu/pull/3837
- fix: variable manager throwing error for array vars by @ainouzgali in https://github.com/novuhq/novu/pull/3822
- Docs: Add Uml flow to Cookbook & Architecture pages by @unicodeveloper in https://github.com/novuhq/novu/pull/3841
- refactor: remove duplicate code from renaming to workflow by @ainouzgali in https://github.com/novuhq/novu/pull/3838
- fix: first update of in app with avatar not saved by @ainouzgali in https://github.com/novuhq/novu/pull/3815
- feat(api,node): subscribers mark all messages as read, unread, seen or unseen by @LetItRock in https://github.com/novuhq/novu/pull/3832
- chore(web): fixing eslint warnings for the react hooks rules - part 2 by @LetItRock in https://github.com/novuhq/novu/pull/3836
- fix: error handling in nodejs sdk by @jainpawan21 in https://github.com/novuhq/novu/pull/3839
- feat(docs): add quickstart section by @americano98 in https://github.com/novuhq/novu/pull/3830
- fix: change markInAppMessageAs to markMessageAs by @jainpawan21 in https://github.com/novuhq/novu/pull/3848
- feat: add subscriber migration page + script by @jainpawan21 in https://github.com/novuhq/novu/pull/3803
- Update subscriber trigger payload by @scopsy in https://github.com/novuhq/novu/pull/3856
- refactor: update asset by @BiswaViraj in https://github.com/novuhq/novu/pull/3853
New Contributors
- @jayavardhan3112 made their first contribution in https://github.com/novuhq/novu/pull/3169
- @harrisyn made their first contribution in https://github.com/novuhq/novu/pull/3697
- @aexei made their first contribution in https://github.com/novuhq/novu/pull/3731
- @birdgg made their first contribution in https://github.com/novuhq/novu/pull/3658
- @iv-stpn made their first contribution in https://github.com/novuhq/novu/pull/3834
Full Changelog: https://github.com/novuhq/novu/compare/v0.16.4...v0.17.1
You can find the full changelog on [GitHub](https://github.com/novuhq/novu/compare/v0.16.4...v0.17.1).