SSSD.Notification.Client 1.1.0

dotnet add package SSSD.Notification.Client --version 1.1.0
                    
NuGet\Install-Package SSSD.Notification.Client -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SSSD.Notification.Client" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SSSD.Notification.Client" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="SSSD.Notification.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SSSD.Notification.Client --version 1.1.0
                    
#r "nuget: SSSD.Notification.Client, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SSSD.Notification.Client@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SSSD.Notification.Client&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=SSSD.Notification.Client&version=1.1.0
                    
Install as a Cake Tool

SSSD.Notification.Client

.NET client library for the SSSD Notification Platform — send push notifications, attach files, and publish documents to users of your internal application.

Internal use only. This package is published to the SSSD private NuGet feed.


Installation

dotnet add package SSSD.Notification.Client

Quick Start

1. Register in Program.cs

Bind from appsettings.json (recommended):

builder.Services.AddSssdNotifications(builder.Configuration);
"NotificationClient": {
  "BaseUrl": "https://sssdtech.com/notification",
  "ApplicationName": "Payroll System",
  "Domain": "https://erp.sssdtech.com"
}

Or configure inline:

builder.Services.AddSssdNotifications(options =>
{
    options.BaseUrl         = "https://sssdtech.com/notification";
    options.ApplicationName = "Payroll System";
    options.Domain          = "https://erp.sssdtech.com";
});
  • ApplicationName must exactly match the application name registered in the Admin Panel.
  • Domain is the origin of this application (scheme + hostname, no path). The server matches it against the Allowed Domains list configured on the application in the Admin Panel.
  • No credentials are required — access is controlled entirely by domain allowlisting.

2. Send a Notification

public class SalaryService(INotificationClient notify)
{
    public async Task NotifySlipReady(Guid userId, string month)
    {
        await notify.SendAsync(new NotificationRequest
        {
            Title            = "Salary Slip Ready",
            Content          = $"Your salary slip for <strong>{month}</strong> is available.",
            ContentType      = NotificationContentType.Html,
            Priority         = NotificationPriority.Important,
            RecipientUserIds = [userId.ToString()],   // UUID, email, or mobile number all accepted
            IdempotencyKey   = $"salary-slip-{userId}-{month}",
        });
    }
}

3. Broadcast to All Application Users

await notify.SendAsync(new NotificationRequest
{
    Title     = "System Maintenance",
    Content   = "Scheduled downtime tonight at 10 PM.",
    SendToAll = true,
});

4. Attach a File to a Notification

var result = await notify.SendAsync(request);
await notify.AttachFileAsync(result.NotificationId, pdfStream, "slip.pdf", "application/pdf");

5. Publish a File

await notify.PublishFileAsync(stream, "policy-2025.pdf", "application/pdf",
    description: "HR Policy Handbook 2025");

// Or from a local path
await notify.PublishFileAsync(@"C:\Reports\report.xlsx",
    description: "Monthly Sales Report");

Priority Levels

Value Behaviour
Normal Standard delivery
Important Orange badge in app, elevated FCM priority
Critical Red badge in app, highest FCM priority

Content Types

Value Use when
PlainText Simple text
Html Rich content — bold, tables, links (sanitised server-side)
RichText Markdown-style text

Idempotency

Pass an IdempotencyKey to prevent duplicates on retry:

IdempotencyKey = $"leave-approved-{requestId}"

If the same key is sent twice, the second call returns the original result with IsIdempotent = true.


© 2025 SSSD Tech Solutions Pvt Ltd — Internal use only.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 63 9/19/2026
1.0.0 63 9/18/2026