Skip to content

docs(connector-builder): field names must match the vendor response; add Windows MSYS rule - #2542

Open
mukeshkumar-uipath wants to merge 1 commit into
mainfrom
fix/sr-primary-key-inference
Open

docs(connector-builder): field names must match the vendor response; add Windows MSYS rule#2542
mukeshkumar-uipath wants to merge 1 commit into
mainfrom
fix/sr-primary-key-inference

Conversation

@mukeshkumar-uipath

Copy link
Copy Markdown
Contributor

What

Two documentation corrections to the uipath-connector-builder skill, both from the ENGCE-59873 dogfooding pass.

1. Primary key vs by-id path token (ENGCE-59873)

The skill implied these were the same thing. They are not. The token names a URL slot and is substituted before the request leaves the platform; the primary key names a field read back from the vendor's response.

This also documents the rule that was missing entirely: a declared field's name must be the key the vendor actually returns, resolved as a dot-path against the raw JSON. There is no field-level response mapping on an SR field, and a name the vendor doesn't send binds to an empty activity output with no error anywhere. That silence is what made the reported bug invisible until run time.

Includes a worked example (--vendor-path '/latest/{base_currency}' --primary-key base_code) and the HubSpot get_contact_list shape as the catalogue reference for "path param is not the primary key".

2. Windows / Git Bash MSYS path mangling (ENGCE-60368)

MSYS rewrites leading-slash arguments at process spawn, so --vendor-path /latest reaches the CLI as C:/Program Files/Git/latest, and validate still reports PASS. Added as a Critical Rule with the MSYS_NO_PATHCONV=1 / MSYS2_ARG_CONV_EXCL='*' workaround, the list of affected path options, and a note that quoting does not help. Interim guidance until the CLI-side guard in ENGCE-60368 lands.

Files

  • SKILL.md — Critical Rule 4 (token vs key), new Critical Rule 11 (MSYS), new anti-pattern 11, renumbering
  • references/standard-resources.md — rewritten by-id section, new field-naming rule under §fields
  • references/element-json.md — by-id token phrasing
  • references/debugging.md — by-id phrasing, plus a new symptom entry for "an output field is always empty at run time"

Note

The two changes are independent and land in the same file, so they are one PR but separate concerns. Say the word if you would rather split them.

Code counterpart: UiPath/cli#3535.

🤖 Generated with Claude Code

…add Windows MSYS rule

Two corrections from the ENGCE-59873 dogfooding pass.

1. Primary key vs path token (ENGCE-59873). The skill implied the by-id path
   token and the primary key were the same thing. They are not: the token names a
   URL slot and is substituted before the request leaves the platform, while the
   primary key names a field read back from the vendor response. Document the
   underlying rule that was missing entirely — a declared field's `name` must be
   the key the vendor actually returns, resolved as a dot-path against the raw
   JSON, with no field-level mapping available and no error when it misses.

2. Windows / Git Bash (ENGCE-60368). MSYS rewrites leading-slash arguments before
   the CLI sees them, so `--vendor-path /latest` is written as a Windows path and
   `validate` still reports PASS. Added as a Critical Rule with the
   MSYS_NO_PATHCONV workaround until the CLI-side guard lands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

PR Review: docs(connector-builder) — field names & MSYS rule

Reviewing...

  • Read review criteria and project conventions
  • Analyze full diff (origin/main...HEAD)
  • Read changed files in full for surrounding context
  • Check relative links, cross-skill refs, secrets
  • Post review findings

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 61b862a8f8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +108 to +112
**`field.name` must be the key the vendor actually returns.** There is no field-level
response mapping — no `vendorPath`, `vendorName`, or transformation exists on an SR field,
and element-service does not project the response through the field list at all (it returns
the vendor body, minus an optional `rootKey` unwrap). The activity runtime resolves each
declared field by looking `field.name` up as a **dot-path into the raw vendor JSON**

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Resolve fields against the post-hook response

When a postRequest hook reshapes or renames response keys, this rule incorrectly requires field.name to match the raw vendor JSON. The same skill documents that postRequest runs before returning to the caller and can rewrite response_body (references/hooks.md, including the shipped Graph key-deprefixing pattern), so following this guidance would declare the pre-transform key and produce empty outputs after the hook. Describe response fields against the final post-hook/root-unwrapped payload rather than unconditionally against the vendor payload.

Useful? React with 👍 / 👎.

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