- Limiters: Add expiration to rate limit data (to reduce Redis footprint)
- Limiters: Add
connection_pool:
support
- ObjectCache: Add
connection_pool:
support
- ObjectCache: Add Dalli backend for Memcached
- ObjectCache: Add
Schema.fingerprint
hook andcontext[:refresh_object_cache]
- ObjectCache: properly handle when object fingerprints are evicted but the cached result wasn't
- ObjectCache: add support for
redis_cluster: ...
backend
- ObjectCache: use new
trace_with
API for instrumentation
- ObjectCache: fix compatibility with
run_graphql_field
test helper #4816
- Limiters: Migrate to new
trace_with
instrumentation API, requires GraphQL-Ruby 2.0.18+
- Add missing
require "graphql"
#4511
- Changesets: Add
added_in: ...
andremoved_in: ...
for inline definition changes
- Support the
redis-client
gem asredis:
(requires graphql-pro 1.24.0+)
- Limiters: Support
dashboard_charts: false
to disable built-in instrumentation - Limiters: Support
assign_as:
to use a different accessor method for storing limiter instances on schema classes (add a correspondingclass << self; attr_accessor ...; end
to the schema class to use it) - Limiters: Support
context_key:
to put runtime info in a different key in query context - Runtime Limiter: Add
window_ms:
to runtime info
- Limiter: handle missing fields in MutationLimiter
- Limiters: add MutationLimiter
- ObjectCache: Update Redis calls to support redis-rb 5.0
- ObjectCache: also update
delete
to handle more than 1000 objects in Lua
- ObjectCache: read and write objects 1000-at-a-time to avoid overloading Lua scripts in Redis
- ObjectCache: Add a message to context when a type or field causes a query to be treated as "private"
- ObjectCache: skip the query analyzer when
context[:skip_object_cache]
is present
- ObjectCache: Add
ObjectType.cache_dependencies_for(object, context)
to customize dependencies for an object
- ObjectCache: Fix to make
context[:object_cache][:objects]
a Set
- ObjectCache: remove needless
resolve_type
calls
- ObjectCache: persist the type names of cached objects, pass them to
Schema.resolve_type
when validating cached responses.
- ObjectCache: add
cache_introspection: { ttl: ... }
for setting an expiration (in seconds) on introspection fields.
- ObjectCache: don't create a cache fingerprint if the query is found to be uncacheable during analysis.
- Changesets: Return an empty set when a schema doesn't use changesets #3972
- Changesets: Add introspection methods
Schema.changesets
andChangeset.changes
- Changesets: don't require
context.schema
for plain-Ruby calls to introspection methods #3929
- Changesets: Add
GraphQL::Enterprise::Changeset
- Object Cache: properly handle invalid queries #3703
- Rate limiters: first release
- Object cache: first release