Skip to content

Fixed issues related to operationPath and operationID resolving#2229

Open
HimethW wants to merge 7 commits into
wso2:arazzo-extensionfrom
HimethW:arazzo-extension-OTeL-v2
Open

Fixed issues related to operationPath and operationID resolving#2229
HimethW wants to merge 7 commits into
wso2:arazzo-extensionfrom
HimethW:arazzo-extension-OTeL-v2

Conversation

@HimethW

@HimethW HimethW commented May 11, 2026

Copy link
Copy Markdown
  • opearationPath now supports
    operationPath: '{$sourceDescriptions.toolshopDescription.url}#/paths/1categories1tree~1{categoryId}'
    type of expressions

  • operationID now supports
    operationId: $sourceDescriptions.toolshopDescription.getProducts
    type of expressions

HimethW added 7 commits May 10, 2026 23:47
…Description.url}#/paths/~1categories~1tree~1{categoryId} now in addition to toolshop#/paths/~1categories~1tree~1{categoryId}

here the string is split at the # and the two parts are evaluated seperately
… when a operationID is given it iterates through all the sources. now in addition to that, we can provide operationId: $sourceDescriptions.toolshopDescription.getProducts

this will call a function that will find the correct source description first to narrow down and then use the already exisiting method to pinpoint the operationID within that source
@HimethW HimethW requested a review from hevayo as a code owner May 11, 2026 07:21
Copilot AI review requested due to automatic review settings May 11, 2026 07:21
@HimethW HimethW requested a review from gigara as a code owner May 11, 2026 07:21
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (4)
  • main
  • feature/.*
  • release/.*
  • hotfix/.*

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 61c17659-8b8e-424f-819b-b58b514f5017

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Arazzo Go runner’s operation resolution so steps can resolve operations using (1) qualified operationId expressions scoped to a specific sourceDescriptions entry and (2) more flexible operationPath forms (including $sourceDescriptions.<name>.url-style source references and path-only pointers). The PR also adds new example Arazzo files and expands internal documentation/handover notes.

Changes:

  • Add support for qualified operationId lookups scoped to a named source description.
  • Enhance operationPath resolution to handle $sourceDescriptions.<name>.url-style expressions and path-only pointers.
  • Add new go-runner test examples and expand documentation files.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
workspaces/arazzo/arazzo-designer-cli/internal/runner/executor/step_executor.go Uses qualified-operationId parsing and forwards raw operationPath parts to FindByPath() for expression/braces handling.
workspaces/arazzo/arazzo-designer-cli/internal/runner/executor/operation_finder.go Implements qualified operationId parsing + scoped lookup, resolves $sourceDescriptions.<name>.url refs, and adds path-only pointer fallback logic.
workspaces/arazzo/examples/go-runner-test/toolshop/16-operation-path-advanced.arazzo.yaml New example demonstrating operationPath expression + path-only pointers.
workspaces/arazzo/examples/go-runner-test/toolshop/17-qualified-operation-id.arazzo.yaml New example demonstrating qualified operationId syntax.
workspaces/arazzo/Explanation.md Documentation updates reflecting MCP server task architecture and related features.
workspaces/arazzo/readme(project).md Adds project setup notes (currently includes incorrect toolchain guidance and personal branch guidance).
workspaces/arazzo/handover.md Adds a project handover document (includes sections not directly related to this PR’s change scope).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}

// parseQualifiedOperationID parses the Arazzo spec form
// "$sourceDescriptions.NAME.operationId" into (sourceName, operationId, true).
Comment on lines +284 to +285
// Supports both plain operationId and the qualified Arazzo spec form
// "$sourceDescriptions.NAME.operationId" which scopes the search to one source.
Comment on lines +486 to +489
// resolvePathOnly handles JSON pointers that reference a path item rather than a
// specific operation, e.g. /paths/~1pet~1findByStatus (no HTTP method suffix).
// It returns the first HTTP method found for the decoded path, in httpMethods order.
func (of *OperationFinder) resolvePathOnly(jsonPointer, sourceName string, sourceDesc map[string]interface{}) *OperationInfo {
info:
title: Toolshop Qualified OperationID Example
summary: Demonstrates using scoped operationId references.
description: This example shows how to use the Arazzo spec compliant "$sourceDescriptions.NAME.operationId" syntax.
- condition: $statusCode == 200

outputs:
productName: $steps.getProductDetailStep.outputs.response.body.name
- condition: $statusCode == 200

outputs:
categoryData: $steps.getSpecificCategoryStep.outputs
Comment on lines +1 to +5
## Stuff to know
- in this repo the arazzo-extension-OTeL-v2 is the correct branch to be working on. as of now it is upto date with the wso2 arazzo-extension branch (I did a git pull origin arazzo-extension). this means it has the latest arazzo visulaizer plugin updates
- other than the plugin code it also has the explanation.md fully updated and pushed
- as for the arazzo-extension-cliupdate-v3 branch don't use it. it just has the --docker flag and the -o flag added to the cli and the pllan.md files in addition to this branch which are not usefull for the plugin. those are some of the personal updates done (needed them for the CLI tool in the arazzo-mcp-generator)
- so in the future make sure to use this v2 branch and continue
Comment on lines +8 to +12
- need to have go(0.26 something) and node(i used 25) installed
- update the rush.json to be compatible with the node version
- do rush install (later if needed rush update. this can be useful if rush build is failing)
- the rush build -t arazzo-visualizer
- both need to be run from where the rush.json is at
Comment on lines +40 to +57
5. Marketing & Documentation
README: Refined the VS Code Marketplace README to heavily emphasize the live execution dashboard, OpenTelemetry tracing, the bundled Go runner, and the dual nature of "Try with AI" vs "Try with curl" (including the headless REST API).

Launch Strategy: Outlined a developer-focused marketing plan including architecture deep-dive blogs (Dev.to/Hashnode), a "Show HN" Hacker News launch, and short-form GIF/video content for social media.

6. University Internship Report Context
We generated a massive, 35-40 page structured LaTeX document for an academic industrial training report (Color Code: CS Orange). The report comprehensively covers the intern's contributions to WSO2, detailing:

The LSP, RPC layers, and Webview architecture.

The Visitor pattern for AST parsing.

OpenTelemetry integration and the dual Arazzo/Trace server setup.

Soft skills development, organizational SWOT analysis, and references to the Arazzo and MCP specifications.

7. Future Horizons: Arazzo for MCP
We discussed a cutting-edge theoretical architecture: adapting the Arazzo Go Runner to orchestrate Model Context Protocol (MCP) tools instead of standard REST APIs. This would involve creating a custom mcp-stdio source type in the YAML, allowing developers to build strictly deterministic, non-hallucinating agentic workflows. No newline at end of file
@@ -0,0 +1,33 @@
## Stuff to know
- in this repo the arazzo-extension-OTeL-v2 is the correct branch to be working on. as of now it is upto date with the wso2 arazzo-extension branch (I did a git pull origin arazzo-extension). this means it has the latest arazzo visulaizer plugin updates
axewilledge added a commit to wso2/arazzo-tools that referenced this pull request May 11, 2026
Bring over wso2/vscode-extensions#2229 so the runner resolves sourceDescription-qualified operationPath and operationId values in this standalone repo.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

2 participants