🛠️ Problem
The two queries in src/workbooks/optimization/SavingsPlan/SavingsPlan.workbook ("Savings plan Summary" and "Savings plan details") each contain 4 join operators, above Azure Resource Graph's documented limit of 3 joins per query:
join on advisor suppressions (on stableId)
join on advisor configurations, subscription level (on subscriptionId)
join on advisor configurations, resource group level (on subscriptionId, resourceGroup)
join kind=inner on resourcecontainers — only to fetch the subscription display name
ARG currently executes the queries without error (verified during PR #2225 testing), so this is a latent risk rather than an active failure: if the documented limit starts being enforced, both tiles break.
💡 Suggested fix
Drop join #4 and render the subscription name via a workbook column formatter / parameter instead — this is exactly why the equivalent Reservations queries (Reservations.workbook, commitment.workbook) stay at 3 joins. That also removes the join that had the innerunique data-loss bug fixed in PR #2225.
ℹ️ Additional context
🛠️ Problem
The two queries in
src/workbooks/optimization/SavingsPlan/SavingsPlan.workbook("Savings plan Summary" and "Savings plan details") each contain 4joinoperators, above Azure Resource Graph's documented limit of 3 joins per query:joinon advisor suppressions (on stableId)joinon advisor configurations, subscription level (on subscriptionId)joinon advisor configurations, resource group level (on subscriptionId, resourceGroup)join kind=inneronresourcecontainers— only to fetch the subscription display nameARG currently executes the queries without error (verified during PR #2225 testing), so this is a latent risk rather than an active failure: if the documented limit starts being enforced, both tiles break.
💡 Suggested fix
Drop join #4 and render the subscription name via a workbook column formatter / parameter instead — this is exactly why the equivalent Reservations queries (
Reservations.workbook,commitment.workbook) stay at 3 joins. That also removes the join that had theinneruniquedata-loss bug fixed in PR #2225.ℹ️ Additional context