Repository navigation
Ridu v0.10.0
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 aslayout: $layout, instead oflayout: [{ 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 asHeroBlock, 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
RiduStringWhereandRiduNumberWhere. 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.RawMessageinstead 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.