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

amboss-mededu / gateway / 33643499887
93%
master: 91%

Build:
Build:
LAST BUILD BRANCH: feat/operation-hooks
DEFAULT BRANCH: master
Ran 02 Sep 2026 02:40PM 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:56PM UTC coverage: 91.374% (+0.02%) from 91.352%
33643499887

Pull #18

github

cideM
forward operation directives to declaring services

The planner rebuilds each step's operation from scratch and never copied
the client operation's directives onto it, so a directive in the
operation position was dropped before any service saw it. A client
sending

    query Articles @capiRelationMap { article { title author { name } } }

got a plan whose steps read `query Articles { ... }`, and the service
that declares @capiRelationMap to opt into a different response shape
never learned the client had asked for it. Nothing surfaced: the merged
schema declares the directive, so validation passed, and the request
succeeded with the default behaviour.

Copying the directives verbatim onto every step is not a fix either. A
GraphQL server rejects the whole query if it carries a directive it does
not declare, or one in a position its declaration does not allow. Only
the services that declare the directive for the position it lands in may
receive it.

The position is the step's own operation type, not the client's. A
dependent step re-enters a service through node(id:), which is a Query
field, so it always executes as a query even when the client sent a
mutation. Given both services declaring `directive @audit on MUTATION`
and

    mutation CreateUser @audit { createUser { firstName lastName } }

with lastName owned by the second service, the dependent step must not
carry @audit or that service rejects it with "directive @audit is not
allowed on QUERY".

Index each source schema's declared directives and their allowed
locations by URL once at startup. Sources sharing a URL are unioned:
nothing rejects a configuration that splits one service across two
RemoteSchema entries, and fieldURLs already registers fields from both,
so keying by URL alone would keep whichever entry came last. The index
reads source schemas rather than the merged one, so it is independent of
how the merger reconciles directive definitions.

When a step's query document is built, filt... (continued)
Pull Request #18: planner: forward operation directives to declaring services

57 of 63 new or added lines in 2 files covered. (90.48%)

5 existing lines in 1 file now uncovered.

2807 of 3072 relevant lines covered (91.37%)

411.98 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
90.49
-0.09% gateway.go
2
89.92
0.21% plan.go

Coverage Regressions

Lines Coverage ∆ File
5
90.49
-0.09% gateway.go
Jobs
ID Job ID Ran Files Coverage
1 33643499887.1 02 Sep 2026 02:40PM UTC 12
91.37
GitHub Action Run
Source Files on build 33643499887
  • Tree
  • List 12
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #18
  • PR Base - fix/node-id-variable-collision (#33635574540)
  • 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