Skip to content

GFQL remote: send bound typed GraphSchema with gfql_remote requests #1465

Description

@lmeyerov

Summary

Add remote transport for the typed graph schema introduced by the GFQL schema/type-system work. A graph with a bound public GraphSchema should be able to call gfql_remote() and send the schema contract to the server-side GFQL executor instead of using schema metadata only for local preflight.

Schedule

This is not part of the immediate #1457 merge gate. Run after the local schema contract is stable and serializable:

  1. feat(gfql): add public declarative schema model #1457 / GFQL type system follow-on A: public declarative schema model + stable exports #1337 lands public GraphSchema binding and local validation.
  2. GFQL type system follow-on C: public schema-Arrow APIs + plottable boundary enforcement #1339 defines stable schema serialization / Arrow-plottable boundary semantics, or this issue explicitly defines the remote JSON contract as a narrow subset.
  3. Then this issue wires schema transport through gfql_remote() / gfql_remote_shape().

It does not need to wait for #1338 inference, but the tutorial #1464 should mention remote schema support only after this lane lands.

Scope

  • Define a stable serialized schema payload for remote GFQL requests.
  • Include bound GraphSchema metadata from g.bind(schema=schema) in gfql_remote() request envelopes.
  • Preserve current behavior when no schema is bound.
  • Decide whether strict/permissive mode is sent as schema metadata, request option, or both.
  • Ensure server/backward compatibility: old servers should ignore or reject with a clear capability error rather than silently misinterpreting the request.
  • Add request-shape tests for chain/DAG/Cypher string gfql_remote() paths as applicable.
  • Add docs note linking local gfql_validate() and remote execution behavior.

Out of scope

Acceptance

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions