• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

amboss-mededu / gateway / 33635574540
91%
master: 91%

Build:
Build:
LAST BUILD BRANCH: feat/operation-hooks
DEFAULT BRANCH: master
Ran 02 Sep 2026 01:25PM UTC
Jobs 1
Files 12
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Sep 2026 01:23PM UTC coverage: 91.352% (+0.1%) from 91.219%
33635574540

Pull #17

github

cideM
reserve var name for dependent step node IDs

A query whose fields span two services is split into a plan where the
second step re-enters the remote service through node(id: ...), once per
object the first step returned. The planner declared that argument's
variable as $id, and only when the client had not already declared one
by that name; otherwise it reused the client's declaration. The executor
then assigned the node ID under the same name on every dependent step.

$id is an ordinary name for a client to choose, so the two collided.
Given:

    query ($id: ID!, $category: String!) {
      allUsers {
        favoriteCatPhoto(category: $category, owner: $id) { URL }
      }
    }

where favoriteCatPhoto is owned by a second service, the dependent step
ran once per user with $id set to that user's ID. The owner argument,
which the client meant to pin to a single ID, was silently rewritten to
u1, then u2, then u3. Nothing surfaced an error: the query is valid and
both node(id:) and owner take an ID, so every request succeeded and
returned the wrong photos.

Reusing the client's declaration also inherited its type. A client
declaring $id as String! and using it for a String! argument, which is
legal on its own terms, produced node(id: $id) against node(id: ID!) and
the remote service rejected the entire step.

Give the gateway a name of its own, _gateway_node_id. Since it can never
be one of the client's variables, declare it unconditionally rather than
conditionally reusing whatever is there, and reject operations that
declare it instead of overwriting them silently.

Fixes: 6f691985c345 ("query printing and assembly happens at planning time (#35)")

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pull Request #17: planner: reserve a variable name for dependent step node IDs

10 of 10 new or added lines in 2 files covered. (100.0%)

28 existing lines in 2 files now uncovered.

2757 of 3018 relevant lines covered (91.35%)

396.5 hits per line

Coverage Regressions

Lines Coverage ∆ File
25
82.73
0.0% execute.go
3
89.71
0.27% plan.go
Jobs
ID Job ID Ran Files Coverage
1 33635574540.1 02 Sep 2026 01:25PM UTC 12
91.35
GitHub Action Run
Source Files on build 33635574540
  • Tree
  • List 12
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #17
  • PR Base - sync/upstream-catchup-2026-09 (#33631109210)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc