Summary
azd provision --preview (what-if) skips hooks entirely. For a deployment whose real desired state is maintained substantially by hooks, the preview never reflects reality.
Why it matters
In our setup, hooks perform RBAC grants, Key Vault seeding, App Config seeding, hosted-agent env injection, and a Logic App workflow PUT. azd provision --preview shows none of these — so the one command whose whole job is "show me what will happen" is silently incomplete. A reviewer cannot use the preview to reason about the actual change set.
Ask
At minimum, azd provision --preview should clearly surface that hooks are omitted (so the preview isn't mistaken for the full plan). Better: a mechanism for hooks to contribute a dry-run / plan contribution so preview can reflect their intended effects.
Note
This is partly a consequence of how much work our hooks do (see related issues); the broader fix is azd/IaC expressing more of that natively so fewer effects live in hooks.
Context: encountered while deploying a multi-component AI/chat service (App Service + Function App + Logic App + Foundry hosted agent) end-to-end with azd provision/deploy in Azure/azure-sdk-tools tools/sdk-ai-bots/deployment. We currently work around this with a TypeScript hook.
Summary
azd provision --preview(what-if) skips hooks entirely. For a deployment whose real desired state is maintained substantially by hooks, the preview never reflects reality.Why it matters
In our setup, hooks perform RBAC grants, Key Vault seeding, App Config seeding, hosted-agent env injection, and a Logic App workflow
PUT.azd provision --previewshows none of these — so the one command whose whole job is "show me what will happen" is silently incomplete. A reviewer cannot use the preview to reason about the actual change set.Ask
At minimum,
azd provision --previewshould clearly surface that hooks are omitted (so the preview isn't mistaken for the full plan). Better: a mechanism for hooks to contribute a dry-run / plan contribution so preview can reflect their intended effects.Note
This is partly a consequence of how much work our hooks do (see related issues); the broader fix is
azd/IaC expressing more of that natively so fewer effects live in hooks.Context: encountered while deploying a multi-component AI/chat service (App Service + Function App + Logic App + Foundry hosted agent) end-to-end with
azdprovision/deploy in Azure/azure-sdk-toolstools/sdk-ai-bots/deployment. We currently work around this with a TypeScript hook.