Skip to content

Add Microsoft Teams as notification provider #260

@KillianLarcher

Description

@KillianLarcher

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

  • Add sendTeams to provider handlers:
    src/features/notifications/providers/index.ts

  • Extend provider type system by adding teams to ProviderKind:
    src/features/notifications/types.ts

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Planned

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions