Skip to content

Ridu v0.10.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:10

Ridu 0.10.0

This release reduces memory use for applications with large, reused block schemas and prevents
GraphQL mutations from silently substituting null for variables nested inside JSON literals.

Changes

  • Schema validation checks registered blocks once per definition, and schema resolution retains
    only the field-graph state needed by runtime behavior. The operation engine, HTTP handlers, and
    plugin transports share one runtime snapshot.
  • Embedded and rich-text schema walks use a shared limit of 100,000 field placements, increased
    from 10,000. This allows larger schemas to start without the earlier placement-limit failure.
  • GraphQL reuses one output type for each registered block, one filter operator input per value
    type, and the output enums for select filters. This reduces generated schema size and memory use.
  • REST and admin document responses encode directly from stored values, avoiding intermediate
    object maps while preserving their JSON representation.
  • GraphQL rejects variables nested inside JSON literals before execution. Pass the complete JSON
    value as a variable, such as layout: $layout, instead of layout: [{ caption: $caption }].
    Complete literals and variables supplying the whole value remain supported.

Breaking changes and upgrade

Update the Go module and every Ridu npm package to 0.10.0 together, then regenerate application
contracts and rebuild with the matching CLI.

  • Registered GraphQL block output types now use <TypeName>Block, such as HeroBlock, wherever
    that block is referenced. Update inline fragments and regenerate any GraphQL client types that
    used the former collection- or field-path-specific names.
  • GraphQL filters share operator inputs such as RiduStringWhere and RiduNumberWhere. Update
    explicitly named variable types that used the former field-specific operator inputs. Select
    filters now use the same enum type as their output field.
  • Go admin-protocol document fields now use json.RawMessage instead of decoded document maps.
    Custom Go consumers of those protocol envelopes must decode the raw JSON when they need to
    inspect or change it. REST responses and the TypeScript SDK retain their document JSON shapes.
  • Plugin transports receive the shared resolved runtime snapshot through
    PluginTransportContext.Snapshot; use it when constructing a schema-backed transport.
  • Queries that placed variables inside a JSON scalar literal now return a validation error
    instead of applying null values. Move the entire JSON value into one variable.

Go authoring configuration, manifest and wire format counters, plugin API counters, and published
migration artifact encoding remain unchanged. This release does not require a database migration
solely for these runtime and GraphQL changes. Review any application schema changes through the
ordinary migration workflow.