Skip to content

docs: make the whole-definition azapi path the Logic App standard - #42

Merged
craigthackerx merged 2 commits into
mainfrom
docs/logic-app-azapi-primary
Aug 24, 2026
Merged

docs: make the whole-definition azapi path the Logic App standard#42
craigthackerx merged 2 commits into
mainfrom
docs/logic-app-azapi-primary

Conversation

@craigthackerx

Copy link
Copy Markdown
Contributor

The Terraform section of the Logic App standard documented only the per-resource azurerm path: the azurerm shell module plus azurerm_logic_app_trigger_* and azurerm_logic_app_action_* resources, roughly 700 lines of it. terraform-azapi-logic-app-workflow was not mentioned anywhere, and templatefile appeared three times, all in passing on the azurerm path.

What changes

New: the authoring model is now the first decision in the Terraform section, with a comparison table and the whole-definition path named as the standard. The reasoning is that Logic Apps are authored in a designer, and the per-resource split discards the artefact that designer produces, creates a second ordering graph that can disagree with runAfter, and exposes the CannotDisableTriggerConcurrency trap that only fires when a trigger is PATCHed individually out of a live definition.

New: ### Whole-definition workflows with azapi, covering

  • the designer → code view → templates/<name>.json.tftpl → ctrl+F → plan round trip
  • the three wrapper shapes that paste in unchanged, and why the unwrap is unambiguous
  • the token contract: what to tokenise, what not to, and the rule to prefer a typed workflow parameter over a token for anything an operator might want to see or change
  • that WDL's @{} does not collide with Terraform's ${}, plus the $${ and %%{ escapes for the two characters that do
  • the module call, and that templatefile(...) goes straight into definition with no jsonencode/jsondecode wrapper, unlike the per-resource path
  • declarations in the definition versus values in Terraform, and the 4.4.0 precedence order
  • V1-only connections on Consumption and the two halves of managed identity auth
  • deploy_tier for sibling dispatch ordering
  • sensitive_body for secure values and the trimmed response_export_values default
  • the validation versus check split, as a table

Reframed, not removed: the per-resource sections stay, since the azurerm module is published and real estates use it, but they now carry lead-ins saying they are the alternative path.

One thing you need to know

libre-devops/logic-app-workflow/azapi does not resolve on the Terraform Registry. I paginated all 136 modules in the namespace; the azapi Logic App module is not among them, though api-connection/azapi, summary-rules/azapi and others are. The module is released on GitHub at 4.4.0 (2026-07-30) and its own README already uses the registry address.

The doc therefore shows the registry form as the standard, with a callout giving the git tag source as the interim. Publish the module and that callout should be deleted.

Verification

  • Module interface read from variables.tf, HEADER.md and both examples in the repo, not from memory.
  • Registry absence confirmed by paginating the full namespace.
  • No broken internal anchors in the built output; the four cross-references resolve.
  • npm run build clean. No em dashes or en dashes.

The Terraform section documented only the per-resource azurerm path:
the azurerm shell module plus azurerm_logic_app_trigger_* and
azurerm_logic_app_action_* resources, about 700 lines of it. The azapi
whole-definition module was not mentioned at all, and templatefile
appeared three times in passing.

Adds the authoring model as the first decision in the section, with the
whole-definition path as the standard, and documents it properly: the
designer to code view to json.tftpl round trip, the three wrapper shapes
that paste in unchanged, the token contract and what should not become a
token, the Terraform escapes for literal ${ and %{, the module call,
declarations in the definition versus values in Terraform and the 4.4.0
precedence order, V1 connections and the two halves of managed identity
auth, deploy tiers for sibling dispatch, sensitive_body and the trimmed
response_export_values default, and the validation versus check split.

The per-resource sections stay as the documented alternative, since the
azurerm module is published and real estates use it, but they are now
labelled as such rather than reading as the only way.

Records that libre-devops/logic-app-workflow/azapi does not resolve on
the Terraform Registry yet, with the git tag source as the interim.
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

The WDL pitfalls section documented function traps in detail without
linking any of the four documents that define the language, and See Also
had none of them either. The copilot-agents knowledge packs already
fetch three of them, so the agent was better sourced than the standard.

Adds the language overview, schema reference, triggers and actions
reference, expression functions reference and the machine-readable
2016-06-01 JSON schema, and records that there is no YAML dialect of
WDL, since a definition is JSON and any YAML in a Logic App repository
is build tooling.
@craigthackerx
craigthackerx merged commit cfa2928 into main Aug 24, 2026
7 checks passed
@craigthackerx
craigthackerx deleted the docs/logic-app-azapi-primary branch August 24, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant