releases.shpreview

v2.3.0

$npx -y @buildinternet/releases show rel_Ekd-xKiRVm5urdr4HAzht

⚠️ Auto Persisted Queries changes

Enabling Auto Persisted Queries with ApolloClient.Builder.enableAutoPersistedQueries(true) will now enable mutations as well (#2509). This should cause no problem in the vast majority of cases. Server supporting auto persisted queries usually support auto persisted mutations as well. As a precautionary measure, we nonetheles recommend testing the integration with your server after upgrading.

JS support for generated models

The generated models and parsers can now target Javascript thanks to @andersio and @omainegra 💛. Check out the documentation for adding it to your multiplatform project. For runtime support, follow this issue.

OperationOutputGenerator

In addition to OperationIdGenerator, you can now generate operation IDs in batch. This is useful if your backend requires a list of operations to whitelist that should be sent all at once.

Exemple usage:

// build.gradle.kts
apollo {
    // ...
    operationOutputGenerator.set(object : com.apollographql.apollo.compiler.OperationOutputGenerator {
        // don't forget to bump the version if you change the implementation
        override val version = "v1"

        override fun generate(operationDescriptorList: Collection<OperationDescriptor>): OperationOutput {
            return operationDescriptorList.associate {
                it.source.md5() to it
            }
        }
    })
}

Full Changelog

✨ New

  • [Gradle Plugin] add a way to generate operation ids as batch (#2476)
  • [Multiplatform] JS support in apollo-api (#2467)
  • [SDL] add a basic validation test (#2493)

👷‍♂️ Fixes

  • [Runtime] AutoPersistedQueries supported for mutations
  • [Runtime] add missing @Deprecated and toBuilder for ApolloMutationCall (#2501)
  • [Kotlin Runtime] do not use Java8 forEach which is not available on some older android versions (#2517)
  • [SqlLite Cache] bump SqlDelight version, fixes compatibility with SqlDelight 1.4.0 (#2508)
  • [Plugin] better error message for multiple schemas (#2488)
  • [Compiler] allow defaultValue="null" for non-string scalar types (#2490)
  • [RxJava2] Add is disposed checking to single (#2480)
  • [SQL Cache] Fix writeToCacheAsynchronously boolean always false when prepareInterceptorChain() is called (#2484)

⚡ Performance

⚙️ Internal

  • [apollo-api] prefix Boolean Kotlin properties with is for better java interop (#2474)

❤️ External contributors

Many thanks to @JakeSteam, @nymerias, @s1ee, @andersio, @omainegra and @olivierg13 for their awesome contributions!

Fetched April 11, 2026