Parent
#351
What to build
The GraphQL transport synthesises one combined schema with N top-level Query fields, each keyed by its controller id. Clients query all configured devices from a single endpoint.
Scope:
- GraphQL transport adopts the multi-controller
connect() properly: one schema, one top-level Query field per id.
- Per-transport GraphQL id validator runs at
connect() time. GraphQL has the most restrictive identifier charset and so drives the lowest-common-denominator note in the docs (cross-transport id-naming guidance for users mixing EPICS hyphens with GraphQL field names).
- End-to-end multi-controller GraphQL scenario added covering: two controllers exposed under a single combined schema with distinct id-keyed Query fields.
- GraphQL transport test gains a per-transport id-validation case demonstrating the fail-fast behaviour.
- Documentation note added about id charset constraints when mixing transports (lowest-common-denominator).
User stories from #351 covered: 16, 17, 18, 20.
Acceptance criteria
Blocked by
Parent
#351
What to build
The GraphQL transport synthesises one combined schema with N top-level Query fields, each keyed by its controller
id. Clients query all configured devices from a single endpoint.Scope:
connect()properly: one schema, one top-level Query field per id.connect()time. GraphQL has the most restrictive identifier charset and so drives the lowest-common-denominator note in the docs (cross-transport id-naming guidance for users mixing EPICS hyphens with GraphQL field names).User stories from #351 covered: 16, 17, 18, 20.
Acceptance criteria
Blocked by