3.2.6¶
Release Date: March 16, 2026
✨ New Features¶
Terraform Modules¶
Custom Subdomain WAF Security Policies 🛡️¶
Module: src/terraform/saif-custom-subdomain-service
Dedicated Web Application Firewall (WAF) policies are now created per custom subdomain deployment, resolving a Terraform conflict where shared WAF policies from the infosec workspace were already attached to the Front Door profile.
Previously, teams sharing the same Azure Front Door profile would fail on terraform apply with Web Application Firewall Policy is already attached to AFDX profile because the infosec-managed WAF policies could only be attached to one profile at a time.
What Changed:
- ✅ Dedicated WAF policies per deployment — each custom subdomain service now creates its own
azurerm_cdn_frontdoor_firewall_policyresources (waf_policy_ext/waf_policy_int) - ✅ Removed dependency on infosec workspace — the
tfe_outputs.firewalldata source is no longer required - ✅ Unique naming convention — policies follow the
wafpolicy{ext|int}{owner}{env}pattern to prevent naming collisions across teams
New Variables:
owner(string) — used to generate unique WAF policy names scoped per teamresource_group_name(string) — required byazurerm_cdn_frontdoor_firewall_policy(WAF policies require an explicit resource group)
Example:
module "custom_subdomain" {
source = "./modules/saif-custom-subdomain-service"
owner = "platform"
resource_group_name = azurerm_resource_group.main.name
# ... other variables
}
Benefits:
- 🚀 Teams can now deploy custom subdomain services without conflicts on shared Front Door profiles
- 🔒 WAF policies are isolated per team, preventing accidental cross-team policy changes
- 🔄 Backwards compatible — existing deployments will create new WAF resources on the next apply
IaC Modules Migrated to Dedicated Repositories 📦¶
Migration: src/terraform/ → iac-azure-modules / iac-okta-modules
Completes the IaC modularization initiative by moving all Azure and Okta Terraform modules out of the Forge monorepo into their dedicated repositories, reducing repository complexity and enabling independent module versioning.
What Changed:
- ✅ 10 Azure modules removed from
src/terraform/and moved toiac-azure-modules - ✅ 8 Okta modules removed from
src/terraform/and moved toiac-okta-modules - ✅ 18 pipeline YAMLs removed from
.azdo/prs/for migrated modules - ✅ 105 module entries added to
src/terraform/modules.jsonfor the newly migrated modules - ✅
swap-terraform-modules.ps1updated — resolvesazure/*sources toiac-azure-modulesandokta/*toiac-okta-modules(sibling repos) - ✅
RepublishFromManifestaction added toManage-TerraformRegistryModule.ps1for bulk republishing of modules from a manifest
Benefits:
- 🗂️ Forge monorepo reduced from 33 to 15 module directories
- 🔄 Modules can be versioned and released independently from Forge
- 🚀 Teams consuming modules get dedicated changelogs and release notes per module repo
PR: #516
GitHub Repository Setup Script 🔧¶
Tool: tools/setup-repo.ps1
A new PowerShell script is available to configure a GitHub repository to match the settings of saif-corp/forge, applying general settings, squash merge format, and branch rulesets automatically.
The script is idempotent — safe to run repeatedly as existing rulesets are skipped if they already exist.
Benefits:
- ⚡ New repositories can be bootstrapped with consistent settings in seconds
- 🔄 Runnable repeatedly without side effects
- 📋 Ensures consistent branch protection and merge strategy across the platform
📦 Dependencies¶
TypeScript Packages¶
The following TypeScript packages were updated:
| Package | Change | PR |
|---|---|---|
flatted |
3.3.3 → 3.4.1 |
#511 |
tar |
7.5.6 → 7.5.11 (security) |
#506 |
lerna |
9.0.5 → 9.0.6 |
#504 |
| npm/yarn group (8 dirs) | Various updates | #513 |
.NET & Other Packages¶
Broad dependency refresh across multiple packages (#509, #505):
- Microsoft.Extensions.* packages updated to
10.0.5 - Microsoft.TemplateEngine.* packages updated to
10.0.201 - OpenTelemetry.Instrumentation.AspNetCore updated to
1.15.1 - 25+ additional dependency updates
🔒 Security note: The
tarpackage update (7.5.6 → 7.5.11) addresses a known vulnerability. All projects using Forge's TypeScript tooling should update immediately.
� Breaking Changes¶
None in this release ✅
📋 Additional Notes¶
- Total commits: 12
- Files changed: ~50
- Contributors: Jason Coria Corona Yue, Emmitt Johnson, Copilot
Support¶
- 📧 Teams Support Channel: Support