2.1.21¶
Release Date: November 19, 2025
โจ New Features¶
NuGet Packages¶
Scalar API Documentation Integration ๐จ¶
Package: SAIF.Platform.Aspire.Hosting
Added support for Scalar, a modern interactive API documentation tool that provides a beautiful and user-friendly interface for exploring OpenAPI specifications.
Key Features:
- โ Scalar Resource - First-class Aspire resource for Scalar documentation
- โ Builder Extensions - Fluent API for adding Scalar to your Aspire projects
- โ Automatic Integration - Seamlessly integrates with existing API projects
Benefits:
- ๐ Modern, interactive API documentation out of the box
- ๐ Automatic OpenAPI spec discovery and rendering
- ๐ฏ Better developer experience for API consumers
Example:
WiremockCli Support (Experimental) ๐งช¶
Package: SAIF.Platform.Aspire.Hosting
Introduced experimental WiremockCli integration for Aspire applications, enabling powerful API mocking capabilities during local development and testing.
Key Features:
- โ
Experimental APIs - Early access to WiremockCli functionality (marked with
SAIFWIREMOCKCLI0001diagnostic) - โ Service Configuration - Configure mock services with fluent API
- โ Aspire Integration - Native support for Aspire resource management
Benefits:
- ๐ Accelerate development with reliable API mocks
- ๐ Test integration scenarios without external dependencies
- ๐ฏ Consistent mock behavior across team environments
Example:
Note: This feature is experimental and APIs may change in future releases. Use the diagnostic ID SAIFWIREMOCKCLI0001 to suppress warnings if needed.
Documentation:
Terraform Modules¶
Azure Management Group Module ๐ข¶
Module: src/terraform/azure-management/modules/management_group
Complete Terraform module for creating and managing Azure Management Groups, enabling hierarchical organization of Azure subscriptions.
Key Features:
- โ Hierarchical Structures - Support parent-child management group relationships
- โ Subscription Association - Attach subscriptions to management groups
- โ Input Validation - Comprehensive validation for names and subscription UUIDs
- โ Smart Defaults - Display name defaults to name if not provided
New Variables:
name(string, required) - Management group namedisplay_name(string, optional) - Friendly display nameparent_management_group_id(string, optional) - Parent management group ID for hierarchysubscription_ids(list(string), optional) - List of subscription UUIDs to associate
Example:
module "platform_mg" {
source = "../../modules/management_group"
name = "platform"
display_name = "Platform Services"
parent_management_group_id = azurerm_management_group.root.id
subscription_ids = [
"12345678-1234-1234-1234-123456789012"
]
}
Benefits:
- โ Organize subscriptions into logical hierarchies
- โ Apply governance policies at scale
- โ Simplify subscription management
Azure Subscription Module ๐¶
Module: src/terraform/azure-management/modules/subscription
New Terraform module for managing Azure subscriptions with comprehensive configuration options and examples.
Key Features:
- โ Subscription Provisioning - Create and manage Azure subscriptions
- โ Flexible Configuration - Support for various subscription types and settings
- โ Example Configurations - Multiple examples demonstrating common patterns
Example:
module "subscription" {
source = "../../modules/subscription"
subscription_name = "dev-subscription"
# Additional configuration...
}
Benefits:
- โ Automated subscription provisioning
- โ Consistent subscription configuration
- โ Infrastructure as code for subscription management
Documentation:
Application Permissions Management ๐¶
Module: src/terraform/saif-application-permissions
Added keep.tf file to preserve application permissions configuration and prevent accidental deletion of critical security settings.
Key Features:
- โ Protected Configuration - Ensures permissions remain tracked in source control
- โ Prevents Drift - Keeps critical security settings from being accidentally removed
Benefits:
- ๐ก๏ธ Enhanced security posture
- ๐ Prevents permission configuration loss
- ๐ Maintains audit trail for permission changes
Foundry Examples¶
PetStore Event Orchestration Sample ๐พ¶
Location: foundry/dotnet/event-orchestration
Comprehensive example application demonstrating event-driven architecture with Azure Functions, Durable Functions, Service Bus, and Cosmos DB.
Components:
- โ PetStore.Api - REST API for order management
- โ PetStore.Orchestration - Durable Functions for saga orchestration
- โ PetStore.Data - Cosmos DB data access layer
- โ PetStore.ServiceBus.Seed - Service Bus message seeding tool
- โ PetStore.AppHost - Aspire orchestration host
Key Features:
- โ Saga Pattern - Order fulfillment orchestration with compensation logic
- โ Activity Tracing - Comprehensive correlation ID tracking across services
- โ Service Bus Integration - Event-driven communication between services
- โ Cosmos DB - Document storage for orders and inventory
Architecture Highlights:
- ๐ Event-driven microservices architecture
- ๐ Durable Functions for reliable orchestration
- ๐ฏ Correlation ID tracking for distributed tracing
- ๐ Sensitive data logging enabled for local development
Example:
// OrderCreatedTrigger - Service Bus trigger
[Function(nameof(OrderCreatedTrigger))]
public async Task Run(
[ServiceBusTrigger("orders", Connection = "ServiceBusConnection")]
string message,
FunctionContext context)
{
var orchestrationClient = context.GetOrchestrationClient();
await orchestrationClient.StartNewAsync(
nameof(OrderFulfillmentOrchestrator),
message);
}
Documentation:
Azure API Management Policy Examples ๐ก๏ธ¶
Location: foundry/terraform/azure-apim-policy
Complete Terraform examples for Azure API Management policies, including authentication, authorization, and request/response transformation.
Policy Templates:
- โ EntraID Authentication - Validate and authorize Azure AD tokens
- โ Okta Authentication - Support for Okta identity provider
- โ Permission Checking - Fine-grained permission validation
- โ Error Handling - Standardized error response headers
- โ CORS Support - Configurable origin headers
- โ Mock Backends - Development/testing backend configuration
Key Features:
- โ Modular Policy Design - Reusable policy fragments
- โ Template-Based - Easy customization via variables
- โ OpenAPI Integration - Policy examples with OpenAPI specification
- โ Test Endpoints - HTTP test file included for validation
Example:
module "auth_policy" {
source = "./api_auth_policy_entraid"
api_management_id = azurerm_api_management.apim.id
# Additional configuration...
}
Benefits:
- ๐ Enterprise-grade API security
- ๐ Reusable policy patterns
- ๐ฏ Consistent authentication/authorization
๐ง Enhancements¶
NuGet Packages¶
- โ SAIF.Platform.Aspire.Hosting - Updated WiremockCli with improved defaults and options extensions
- โ Microsoft.Identity.Client - Updated from 4.77.1 to 4.79.0 with improved managed identity support and IMDS v2
- โ Microsoft.Identity.Client.Broker - Updated from 4.77.1 to 4.79.0 with Android edge-to-edge support
- โ Microsoft.Identity.Client.Extensions.Msal - Updated from 4.77.1 to 4.79.0 with platform updates
- โ Microsoft.Kiota.Abstractions - Updated from 1.20.1 to 1.21.0 with new SetContentFromEnumCollection method
- โ Microsoft.Kiota.Http.HttpClientLibrary - Updated from 1.20.1 to 1.21.0 with backwards compatibility fixes
- โ FluentValidation - Updated from 12.0.0 to 12.1.0 with Tamil and Telugu language support
- โ FluentValidation.DependencyInjectionExtensions - Updated from 12.0.0 to 12.1.0
- โ Spectre.Console - Updated from 0.52.0 to 0.53.0
Terraform Modules¶
- โ azure-management/modules/resource_group - Updated README documentation
- โ azure-apim-policy - Added comprehensive policy templates and examples
๐ Bug Fixes¶
Terraform Modules¶
- ๐ azure-apim-policy - Fixed extraneous quotes in policy conditions
Documentation¶
- ๐ settings-and-secrets.md - Clarified that library name doesn't need to match project ID (but recommended)
๐ Documentation¶
New Documentation¶
- ๐ Forge History - Evolution and timeline of the Forge platform
- ๐ Contributing Guide - Guides for platform developers
- ๐ Presentations Index - Business and change management materials
- ๐ Release Notes Index - Version history and release tracking
- ๐ Development Guides - Developer guides and tutorials
- ๐ Migration Guides - Version migration documentation
- ๐ Security Guides - Security best practices and guides
- ๐ Environment Reference - Environment configuration reference
- ๐ Security Reference - Security architecture and patterns
- ๐ Azure Architecture Diagrams - System design and architecture diagrams
Updated Documentation¶
- ๐ README - Updated Forge documentation links
- ๐ Settings and Secrets Guide - Clarified library naming conventions
- ๐ Change Management Presentation - Updated content
๐ Breaking Changes¶
None in this release โ
๐ Additional Notes¶
- Total commits: 54
- Files changed: 129 files (118 added, 10 modified, 1 deleted)
- Contributors:
- Craig Palmquist (crapal@saif.com)
- Jason Coria Corona Yue (jasyue@saif.com)
- Emmitt Johnson (emmjoh@saif.com)
- Brian Sheridan (brishe@saif.com)
- Aaron Morgulis C (aarmor@saif.com)
- Platform Build Service (automated dependency updates)
Commit Statistics by Type¶
- ๐ 6 new features
- ๐ 2 bug fixes
- ๐ 11 documentation updates
- ๐ง 18 dependency updates
- โป๏ธ 3 refactoring/maintenance
- ๐ 14 merge commits
Support¶
- ๐ง Teams Support Channel: Support