Skip to content

Add power-automate-cloud-flow plugin (JSON LSP for cloud-flow files) - #1

Merged
Cordedmink2 merged 2 commits into
mainfrom
add-power-automate-cloud-flow-lsp
Jul 20, 2026
Merged

Add power-automate-cloud-flow plugin (JSON LSP for cloud-flow files)#1
Cordedmink2 merged 2 commits into
mainfrom
add-power-automate-cloud-flow-lsp

Conversation

@Cordedmink2

Copy link
Copy Markdown
Owner

Adds a second marketplace plugin, power-automate-cloud-flow, mirroring dataverse-customization-xml's setup/LSP/test model — so the marketplace now ships two LSPs: one for Dataverse customization XML, one for Power Automate cloud-flow JSON.

What it does

Live schema validation of unpacked solution cloud flows (Workflows/*.json, *.flow.json) as you hand-edit them, via vscode-json-language-server and a bundled draft-07 clientdata/WDL wrapper schema. Malformed structure shows up as editor diagnostics before pac solution import.

This is the shape layer only. Cross-node semantics (runAfter/connectionName resolution, hard-coded env values) and the export/pack/import round-trip stay in the power-automate-flow-dev skill — the plugin defers to it explicitly and duplicates no rules.

Design notes

  • Structure-only schema by design: connector inputs are left loose because OpenApiConnection isn't in Microsoft's public Logic Apps schema — a strict $ref would produce more false positives than findings. pac solution check / a successful import stays authoritative.
  • Server not committed: npm ci-installed at setup, pinned in package-lock.json. Set-LspSchemaPaths.ps1 stamps the machine-local file:// schema URI into .lsp.json (${CLAUDE_PLUGIN_ROOT} isn't substituted inside LSP settings).
  • No bespoke CLI validator: headless/CI structure checks use PowerShell's built-in Test-Json against the same schema the LSP loads.

Verification

  • Install-Plugin.ps1 self-check drives the real language server end-to-end (scripts/lsp-smoke.mjs) over both the push (didChangeConfiguration) and pull (workspace/configuration) config paths, asserting valid fixtures produce 0 diagnostics and invalid fixtures ≥1.
  • .lsp.json command+args format verified against the official plugin reference docs.
  • Pester suite (config parity + fixture validation) green; PSScriptAnalyzer clean.
  • CI runs both plugins' setup + tests on Windows and Ubuntu.

Install (after merge)

/plugin marketplace update dataverse-agent-plugins
/plugin install power-automate-cloud-flow@dataverse-agent-plugins
/power-automate-cloud-flow:setup

Connor Parsons added 2 commits July 21, 2026 11:10
Second marketplace plugin, mirroring dataverse-customization-xml's
setup/LSP/test model but for Power Automate solution cloud flows.

- Live schema validation of unpacked Workflows/*.json (and *.flow.json)
  via vscode-json-language-server, using a bundled draft-07 clientdata/WDL
  wrapper schema. Structure only: connector inputs are left loose because
  OpenApiConnection isn't in the public Logic Apps schema.
- Server is npm ci-installed at setup, pinned in package-lock.json; not
  committed. Set-LspSchemaPaths.ps1 stamps the machine-local file:// schema
  URI into .lsp.json (CLAUDE_PLUGIN_ROOT isn't substituted in settings).
- Install-Plugin.ps1 self-check drives the real server end-to-end
  (scripts/lsp-smoke.mjs) over both the push and pull config paths and
  asserts the schema fires (valid clean, invalid flagged).
- Headless/CI structure checks via built-in Test-Json; semantic linting
  (runAfter/connectionName resolution, hardcoded values) stays in the
  power-automate-flow-dev skill.
- Pester suite (config parity + fixture validation), CI on Windows + Ubuntu.

Marketplace, CI, README, llms.txt and CHANGELOG updated for the new plugin.
Set-LspSchemaPaths built the file URI via [uri].AbsoluteUri, which returns an
empty string for a rooted POSIX path on Linux PowerShell (stamped "schema -> ").
Build the file:// URI by hand instead, so it is correct on Windows and Linux.

Also make lsp-smoke.mjs read the json settings straight from .lsp.json (resolving
a relative url to a file URI) rather than recomputing them, so the self-check
exercises the actual stamped schema url and would catch a bad stamp directly.
@Cordedmink2
Cordedmink2 merged commit fff8ff0 into main Jul 20, 2026
2 checks passed
@Cordedmink2
Cordedmink2 deleted the add-power-automate-cloud-flow-lsp branch July 20, 2026 23:19
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