Skip to content

2.1.16

Release Date: October 16, 2025


✨ New Features

NuGet Packages

WireMock CLI Integration for Aspire App Host 🎭

Package: SAIF.Platform.Aspire.Hosting

Added comprehensive WireMock CLI integration for Aspire applications, enabling developers to automatically pull mock API configurations from WireMock Cloud and host multiple mock service instances within the Aspire App Host. This eliminates manual mock server setup and provides seamless service discovery for dependent APIs.

Key Features:

  • Multi-Service Support - Host multiple mock services on different ports
  • Selective Auto-Update - Control WireMock Cloud sync per service
  • Service Discovery - Automatic environment variable generation
  • Fluent Configuration - Clean, readable API with method chaining
  • Lifecycle Management - Handles setup, pulls, and startup automatically
  • Cloud Integration - Seamless WireMock Cloud synchronization

Benefits:

  • 🚀 Simplifies local development workflow
  • 🔄 Automatic mock configuration updates from cloud
  • 🎯 Service discovery integration with Aspire
  • 📦 No manual mock server setup required

Documentation:


Project Templates


CLI Tools

NPM Package Auto-Updates

Package: SAIF.DevTools.CLI

Added automatic updates for WireMock and HTTP testing tools to the CLI update command.

New Auto-Update Packages:

  • @wiremock/cli - WireMock CLI for mock API hosting
  • httpyac - HTTP client for API testing

Usage:

saif update

Terraform Modules

Blob Versioning Support for Azure Storage Account

Module: azure-storage/storageaccount

Added the ability to enable blob versioning on Azure Storage Accounts. When enabled, Azure Storage automatically maintains previous versions of blobs when they are modified or deleted, providing enhanced data protection and recovery capabilities.

New Variable:

  • blob_versioning_enabled (bool, default: false) - Enable versioning for blobs in the storage account

Example:

module "storage_account" {
  source = "./modules/azure-storage/storageaccount"

  name                     = "mystorageaccount"
  resource_group_name      = "my-rg"
  location                 = "eastus"
  blob_versioning_enabled  = true  # Enable blob versioning
}

Benefits:

  • ✅ Automatic versioning of blob modifications
  • ✅ Protection against accidental deletions
  • ✅ Point-in-time recovery capabilities
  • ✅ Compliance with data retention requirements

CosmosDB Data Plane Access for Event Subscriber Service

Module: saif-event-subscriber-service

Added the ability to grant Azure Cosmos DB data plane access to Event Subscriber Services when the API service includes CosmosDB infrastructure. This enables subscriber functions to directly read or write data to CosmosDB containers using Azure RBAC-based authentication, eliminating the need for connection string management.

New Feature:

  • Automatic detection of CosmosDB resources from the API service infrastructure
  • Automatically assigns data contributor access to both the application service principal and the user managed identity
  • Configurable read-only or contributor access levels (defaults to contributor for the saif-event-subscriber-service module)
  • Uses built-in Cosmos DB SQL role definitions for secure access

Implementation:

When a CosmosDB account is detected in the API service outputs, the subscriber service automatically provisions data contributor access:

module "cosmosdb_data_plane_contributor" {
  source                = "azure-databases/modules/cosmosdb_data_plane_access"
  resource_group_name   = data.tfe_outputs.api_service.values.resource_group_name
  cosmosdb_account_id   = data.tfe_outputs.api_service.values.cosmosdb_account_id
  cosmosdb_account_name = data.tfe_outputs.api_service.values.cosmosdb_account_name
  principal_ids_map = {
    "application"   = module.application.service_principal_object_id
    "user_identity" = azurerm_user_assigned_identity.function.principal_id
  }
  read_only_access = false  # Set to true for read-only access
}

Configuration Variables:

  • read_only_access (bool, default: false) - Set to true for read-only data access, false for contributor access

Benefits:

  • Automatic data contributor access - No configuration needed, subscribers can read and write to CosmosDB by default
  • ✅ Secure RBAC-based authentication instead of connection strings
  • ✅ Supports both read-only and contributor access patterns
  • ✅ Seamless integration with existing API service CosmosDB infrastructure
  • ✅ No manual permission management required

(In Progress): The Event Subscriber .NET project template is currently being updated to include code generation support for CosmosDB write operations when the function is triggered. This enhancement will provide developers with ready-to-use repository patterns and data access code when CosmosDB is detected in the infrastructure.


🔧 Enhancements

NuGet Packages

  • SAIF.Platform.Aspire.Hosting - Added WireMock CLI integration

CLI Tools

  • SAIF.DevTools.CLI - Added @wiremock/cli and httpyac to auto-update package list

Terraform Modules

  • azure-storage/storageaccount - Added blob versioning support with blob_versioning_enabled variable
  • saif-event-subscriber-service - Added automatic CosmosDB data plane contributor access when API service includes CosmosDB infrastructure

📚 Documentation

New Documentation

Updated Documentation


🔄 Breaking Changes

None in this release


Support

  • 💬 Teams Support Channel: Support