# 3.6.5

**Release Date:** May 21, 2026

---

## 🐛 Bug Fixes

### Terraform Modules

#### Add Moved Blocks for `app_service_backend` Resources in `saif-api-service` 🔧

**Module:** `saif-api-service` (api module)

**Commit:** [`8ed5aea5`](https://github.com/saif-corp/forge/commit/8ed5aea5)

Adds `moved` blocks for the `azurerm_api_management_backend` resources in the `saif-api-service` module to cover the state migration from the flat module layout to the composable submodule structure. Previously, workspaces being migrated from Forge 3.5 to 3.6 would see a plan with `+ create` entries for `module.api.azurerm_api_management_backend.main["default"]` and `module.api.azurerm_api_management_backend.mocking[0]` rather than the expected `has moved to` notation — causing the APIM backend resources to be orphaned and then recreated.

**Changes:**

- Added `moved` block: `azurerm_api_management_backend.app_service_backend` → `module.api.azurerm_api_management_backend.main["default"]`
- Added `moved` block: `azurerm_api_management_backend.app_service_backend_mocking` → `module.api.azurerm_api_management_backend.mocking[0]`

**Benefits:**

- 🚀 Prevents APIM backend orphan-and-recreate during the 3.5 → 3.6 state migration
- 🎯 Speculative plans for migrating workspaces now show zero destroys for APIM backend resources
- 🔄 Eliminates unnecessary APIM backend recreation and downtime during upgrade

---

#### Add Moved Blocks for APIM Named Values in `saif-api-service` 🔧

**Module:** `saif-api-service` (api module)

**Commit:** [`5a967252`](https://github.com/saif-corp/forge/commit/5a967252)

Adds `moved` blocks for the `azurerm_api_management_named_value` resources in the `saif-api-service` module, completing the state migration coverage for all APIM resources. Similar to the backend resources above, workspaces migrating from the flat layout to composable submodules would see `+ create` entries for the named value resources rather than `has moved to`, causing them to be orphaned and recreated.

**Changes:**

- Added `moved` block: `azurerm_api_management_named_value.backend` → `module.api.azurerm_api_management_named_value.backend["default"]`
- Added `moved` block: `azurerm_api_management_named_value.backend_mocking` → `module.api.azurerm_api_management_named_value.mocking[0]`

**Benefits:**

- 🚀 Prevents APIM named value orphan-and-recreate during the 3.5 → 3.6 state migration
- 🎯 All APIM resources in `saif-api-service` are now fully covered by `moved` blocks
- 🔄 Eliminates unnecessary named value deletion and recreation during upgrade

---

## 🔄 Breaking Changes

None in this release ✅

---
