usta integration fixes commit - 04072026 - #14816
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the PRODAFT USTA ATP solution/package to fix ARM-TTK URL construction validation and ensure the backfill playbook can run before the codeless connector’s first ingestion by creating the destination table when missing.
Changes:
- Switches paging
nextPageUrlconstruction to ARMuri()(instead ofconcat()) for ARM-TTK compliance. - Updates the backfill playbook template to create the
PRODAFTUstaCompromisedCredentials_CLtable via a nested deployment and addsTableRetentionDays. - Bumps solution/package versions to 3.0.2 and updates release notes and documentation.
Reviewed changes
Copilot reviewed 6 out of 12 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| Solutions/PRODAFT USTA - Account Takeover Prevention/ReleaseNotes.md | Adds 3.0.2 release notes entry describing the changes. |
| Solutions/PRODAFT USTA - Account Takeover Prevention/Playbooks/PRODAFTUstaATP-Backfill/readme.md | Updates prerequisites and documents table creation + TableRetentionDays. |
| Solutions/PRODAFT USTA - Account Takeover Prevention/Playbooks/PRODAFTUstaATP-Backfill/azuredeploy.json | Adds nested deployment to create the table, adds retention param, updates template version metadata. |
| Solutions/PRODAFT USTA - Account Takeover Prevention/Package/mainTemplate.json | Regenerates package with version bumps, uri() change, and embedded playbook updates. |
| Solutions/PRODAFT USTA - Account Takeover Prevention/Data/Solution_PRODAFTUstaATP.json | Bumps solution version from 3.0.1 to 3.0.2. |
| Solutions/PRODAFT USTA - Account Takeover Prevention/Data Connectors/PRODAFTUstaATP_ccp/PRODAFTUstaATP_PollingConfig.json | Updates paging URL construction for the connector polling config. |
Suppressed comments (1)
Solutions/PRODAFT USTA - Account Takeover Prevention/Package/mainTemplate.json:1
- The packaged playbook template repeats the same nested-deployment scoping issue as the standalone
azuredeploy.json: the inner inline template referencesparameters('WorkspaceName'),parameters('TableRetentionDays'), andvariables('TableName')without declaring/passing them. This is likely to fail deployments of the packaged solution. Apply the same fix strategy here (outer-scope expression evaluation or explicitly parameterize and pass values), and ensureTableDeploymentResourceIdreflects the deployment’s actualresourceGroupso thedependsOnworks as intended.
{
|
I submitted a commit addressing all the issues.
The Validated locally: ARM-TTK (29/0 and 18/0, including the URIs Should Be Properly Constructed check that originally failed), KQL, non-ASCII, and the solution/playbook/workbook validators. Could you please approve the workflow run? |
|
Seems like all the CI checks are passed. If everything is OK, could we please continue merging this PR? Thanks. |
|
Hi @p-osman Kindly attach the invocation logs for reference. Thanks! |
|
Hi @v-maheshbh, |


Change(s):
PRODAFTUstaATP_PollingConfig.json): build the pagingnextPageUrlwith the ARM
uri()function instead ofconcat().PRODAFTUstaATP-Backfill/azuredeploy.json, template version 1.1 -> 1.2):the deployment now creates the
PRODAFTUstaCompromisedCredentials_CLtable when it does notalready exist, via a nested deployment scoped to the workspace resource group. The playbook's
DCR now
dependsOnthat deployment. Adds aTableRetentionDaysparameter (default 90).installing the solution creates the table, and documented the new permission and parameter.
ReleaseNotes.mdentry.Package/mainTemplate.jsonand newPackage/3.0.2.zip.Workbooks/Images/folder (identical to the copies already at the repo root).Reason for Change(s):
Function 'concat' found within 'nextPageUrl'. The test permitsuri()but notconcat()in properties whose name ends in
uri/url.record: the connector only materialises
PRODAFTUstaCompromisedCredentials_CLon firstingestion, and a DCR cannot reference a destination table that does not exist yet. Deploying
the table is a PUT, so it creates the table when absent and is a no-op when the connector has
already created it.
Version Updated:
version 1.1 -> 1.2 (
hidden-SentinelTemplateVersionplus itsreleaseNotesentry).Testing Completed:
Checked that the validations are passing and have addressed any issues that are present:
mainTemplate.jsonandcreateUiDefinition.json: passing, including theURIs Should Be Properly Constructed check that previously failed.
hyperlink validations: all passing locally.