Skip to content

Cloud Providers

Granit is cloud-agnostic by design. Each module defines provider-neutral abstractions (IIdentityProvider, IBlobStorageProvider, IEncryptionService, etc.) and ships dedicated provider packages for major cloud platforms. Switch providers by changing a single NuGet reference and DI registration — no application code changes needed.

DomainAWSAzureGoogle CloudAlibaba Cloud
Authenticationplanned
Identityplanned
Vault / Encryptionplanned
Blob Storageplanned
Notifications — Emailplanned
Notifications — SMSplanned
Notifications — Mobile Pushplanned
Total packages7750
// Program.cs — AWS provider stack
builder.AddGranitAuthenticationCognito();
builder.AddGranitIdentityCognito();
builder.AddGranitVaultAws();
builder.AddGranitBlobStorageS3();
builder.AddGranitNotificationsEmailAwsSes();
builder.AddGranitNotificationsSmsAwsSns();
builder.AddGranitNotificationsMobilePushAwsSns();

Amazon Web Services packages use the official AWS SDK for .NET.

PackageModuleWhat it does
Granit.Authentication.CognitoAuthenticationJWT validation + claims transformation for Cognito User Pools
Granit.Identity.CognitoIdentityIIdentityProvider via Cognito User Pool Admin API
Granit.Vault.AwsVaultIEncryptionService via AWS KMS + dynamic credentials via Secrets Manager
Granit.BlobStorage.S3Blob StorageIBlobStorageProvider via S3-compatible API (also works with MinIO, Scaleway, etc.)
Granit.Notifications.Email.AwsSesNotificationsIEmailSender via Amazon Simple Email Service
Granit.Notifications.Sms.AwsSnsNotificationsISmsSender via Amazon SNS
Granit.Notifications.MobilePush.AwsSnsNotificationsIMobilePushSender via Amazon SNS platform applications

See also: IdentityVault & EncryptionBlob StorageNotifications


Microsoft Azure packages use DefaultAzureCredential for authentication (Managed Identity, Azure CLI, etc.).

PackageModuleWhat it does
Granit.Authentication.EntraIdAuthenticationJWT validation + claims transformation for Microsoft Entra ID (Azure AD)
Granit.Identity.EntraIdIdentityIIdentityProvider via Microsoft Graph API
Granit.Vault.AzureVaultIEncryptionService via Azure Key Vault
Granit.BlobStorage.AzureBlobBlob StorageIBlobStorageProvider via Azure Blob Storage
Granit.Notifications.Email.AzureCommunicationServicesNotificationsIEmailSender via Azure Communication Services
Granit.Notifications.Sms.AzureCommunicationServicesNotificationsISmsSender via Azure Communication Services
Granit.Notifications.MobilePush.AzureNotificationHubsNotificationsIMobilePushSender via Azure Notification Hubs

See also: IdentityVault & EncryptionBlob StorageNotifications


Google Cloud packages use Application Default Credentials (ADC) or service account JSON keys.

PackageModuleWhat it does
Granit.Authentication.GoogleCloudAuthenticationJWT validation + claims transformation for Google Cloud Identity Platform (Firebase Auth)
Granit.Identity.GoogleCloudIdentityIIdentityProvider via Firebase Admin SDK
Granit.Vault.GoogleCloudVaultIEncryptionService via Cloud KMS + dynamic credentials via Secret Manager
Granit.BlobStorage.GoogleCloudBlob StorageIBlobStorageProvider via Google Cloud Storage
Granit.Notifications.MobilePush.GoogleFcmNotificationsIMobilePushSender via Firebase Cloud Messaging

See also: IdentityVault & EncryptionBlob StorageNotifications


DomainAlibaba Cloud serviceStatus
AuthenticationIDaaSplanned
IdentityRAM + IDaaSplanned
Vault / EncryptionKMSplanned
Blob StorageOSS (S3-compatible)planned
Notifications — EmailDirectMailplanned
Notifications — SMSShort Message Serviceplanned
Notifications — Mobile PushPush Notificationsplanned

In addition to cloud-specific packages, Granit offers providers that work with any cloud platform:

PackageChannel(s)Service
Granit.Notifications.BrevoEmail + SMS + WhatsAppBrevo (formerly Sendinblue)
Granit.Notifications.Email.ScalewayEmailScaleway TEM (sovereign EU)
Granit.Notifications.Email.SendGridEmailSendGrid (Twilio)
Granit.Notifications.TwilioSMS + WhatsAppTwilio Messaging
Granit.Notifications.Email.SmtpEmailAny SMTP server
Granit.Notifications.WebPushWeb PushVAPID (standard)
Granit.Notifications.SignalRReal-timeSignalR (WebSocket)

CapabilityAWS (Cognito)Azure (Entra ID)Google CloudAlibaba Cloud
JWT validationplanned
Claims transformationplanned
User CRUDplanned
Role management✓ (custom claims)planned
User cache syncplanned
Health checkplanned
CapabilityAWS KMSAzure Key VaultGoogle Cloud KMSAlibaba Cloud KMS
Encrypt / Decryptplanned
Dynamic DB credentialsplanned
Secret storageplanned
Key rotationplanned
Tenant-isolated keysplanned
Health checkplanned
CapabilityAWS S3Azure BlobGoogle Cloud StorageAlibaba Cloud OSS
Presigned uploadplanned
Presigned downloadplanned
Tenant isolationplanned
Health checkplanned
ChannelAWSAzureGoogle CloudAlibaba Cloud
Email✓ (SES)✓ (ACS)planned
SMS✓ (SNS)✓ (ACS)planned
Mobile Push✓ (SNS)✓ (ANH)✓ (FCM)planned