Solution: TacitRed Defender Threat Intelligence v3.0.1 - Fix Content Hub Deployment#13604
Conversation
- Restore functionCode.zip that was accidentally deleted during folder restructure The Function App template references this zip via WEBSITE_RUN_FROM_PACKAGE but the file was removed in commit 4c731dd per reviewer request without relocation - Remove workspace-scoped roleAssignment resources from Function App template These cause InvalidTemplate errors when deployed through Content Hub template specs (@ character parsing failure). No other Azure-Sentinel solution uses workspace-scoped roleAssignments in Function App templates. Role assignments are now documented as post-deployment steps matching the standard pattern (Fortinet, Zscaler, etc.) - Version bump to 3.0.1
|
Hi @mazamizo21 Kindly schedule a call to discuss the PR changes in more detail. The email is included below for your reference. Thanks! |
…tead of Package/ The mainTemplate.json inside 3.0.1.zip still referenced the old Package/functionCode.zip path. Updated to match the new location at Playbooks/TacitRedDefenderTI_FunctionApp/functionCode.zip.
Update TacitRed-Defender-ThreatIntelligence package to template version 3.0.1. mainTemplate.json: bump playbook descriptions and solution version to 3.0.1, add post-deployment steps to assign Reader and Microsoft Sentinel Contributor roles to the Function App managed identity, and normalize description HTML bullets. Also update packaged zip (3.0.1.zip).
|
Hi @mazamizo21 We are encountering a deployment error during the Azure Function custom deployment.
Thanks! |
|
The error is exactly what our PR #13604 fixes.* The InvalidTemplate error comes from the roleAssignments resources that had workspace-scoped resourceId() calls: "scope": "[[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]" When Content Hub deploys this through its template spec mechanism, the ARM expression parser chokes on certain characters in the workspace name (the @ or other special chars). The reviewer "v-amol" likely entered a workspace name that triggered the same class of parsing failure. Our PR already removes both roleAssignments blocks and moves them to post-deployment manual steps — which is the standard pattern used by Fortinet, Zscaler, and every other Function App solution in the repo. |

Summary
Fixes two deployment failures when installing the TacitRed Defender Threat Intelligence solution from Content Hub.
Problem 1: Missing Function App Code
The
functionCode.zipwas accidentally removed from the Package folder during a folder restructure (commit 4c731dd). The Function App template references this zip viaWEBSITE_RUN_FROM_PACKAGE, so the deployed Function App had no code.Problem 2: Template Validation Error
The Function App template included workspace-scoped
Microsoft.Authorization/roleAssignmentsresources. When deployed through Content Hub's template spec mechanism, these cause an ARMInvalidTemplateerror:No other Function App solution in this repo uses workspace-scoped roleAssignments (verified against Fortinet, Zscaler, AWS, DomainTools). Role assignments are now documented as post-deployment steps.
Fix
functionCode.ziptoPackage/folderMicrosoft.Authorization/roleAssignmentsfrom Function App templateFiles Changed
azuredeploy.json(FunctionApp)mainTemplate.jsonSolution_*.jsonfunctionCode.zip3.0.1.zipReferences