Context
Portabase supports multiple notification providers (Slack, Telegram, Discord, etc.) used to deliver system events such as backup status and agent connectivity.
Objective
Add support for Microsoft Teams as a new notification provider, enabling Portabase to send event-based notifications to a Teams channel.
Technical Implementation
1. Create Microsoft Teams notification provider
Implement sendTeams in:
src/features/notifications/providers/teams.ts
2. Register provider in notification system
3. Implement Teams configuration form (schema + UI)
-
Create validation schema:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/providers/notifications/forms/teams.schema.ts
-
Create UI form component:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/providers/notifications/forms/teams.form.tsx
4. Integrate Teams into UI provider system
-
Update channel form schema:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/channel-form.schema.ts
-
Update provider registry:
src/components/wrappers/dashboard/admin/channels/helpers/notification.tsx
Remove preview: true for Teams provider.
-
Update form renderer:
Add teams case in renderChannelForm in:
src/components/wrappers/dashboard/admin/channels/helpers/common.tsx
Validation Requirements (mandatory)
The Pull Request must include screenshots demonstrating:
- “Add Notification Channel” dialog showing Microsoft Teams as an available provider
- Microsoft Teams configuration form in create mode
- Microsoft Teams configuration form in edit modee)
First Good issue
This issue is suitable for first-time contributors familiar with TypeScript and React.
Context
Portabase supports multiple notification providers (Slack, Telegram, Discord, etc.) used to deliver system events such as backup status and agent connectivity.
Objective
Add support for Microsoft Teams as a new notification provider, enabling Portabase to send event-based notifications to a Teams channel.
Technical Implementation
1. Create Microsoft Teams notification provider
Implement
sendTeamsin:src/features/notifications/providers/teams.ts2. Register provider in notification system
Add
sendTeamsto provider handlers:src/features/notifications/providers/index.tsExtend provider type system by adding
teamstoProviderKind:src/features/notifications/types.ts3. Implement Teams configuration form (schema + UI)
Create validation schema:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/providers/notifications/forms/teams.schema.tsCreate UI form component:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/providers/notifications/forms/teams.form.tsx4. Integrate Teams into UI provider system
Update channel form schema:
src/components/wrappers/dashboard/admin/channels/channel/channel-form/channel-form.schema.tsUpdate provider registry:
src/components/wrappers/dashboard/admin/channels/helpers/notification.tsxRemove
preview: truefor Teams provider.Update form renderer:
Add
teamscase inrenderChannelFormin:src/components/wrappers/dashboard/admin/channels/helpers/common.tsxValidation Requirements (mandatory)
The Pull Request must include screenshots demonstrating:
First Good issue
This issue is suitable for first-time contributors familiar with TypeScript and React.