Releases: cap-js/graphql
Releases · cap-js/graphql
v0.11.0
Added
- Support for configuring request payload limit using global flag
cds.server.body_parser.limit
Changed
- Bump required
@sap/cds
version to>=7.8
- To improve performance, binary payloads are no longer validated to check if they are properly base64 or base64url encoded
- Bump required
node
version to^16
due to usage ofBuffer.toString('base64url')
- Use
cds.compile.to.serviceinfo
to determine if a service should be compiled to GraphQL schema
v0.10.1
Fixed
- Type parsing error for literal values passed within arguments on fields of scalar type differing from the literal type. This case occurred for delete mutations when the filter operands had a type other than
Int
.
v0.10.0
Added
- Support for generating GraphQL descriptions from CDS doc comments of services, entities, and elements
- Support for operator
in
for filtering on lists of values
Changed
- Bump
@graphiql/plugin-explorer
version to^1
- Ignore fields that represent foreign keys in GraphQL schema generation
- When compiling to GraphQL using the CDS API or CLI, only generate GraphQL schemas for services that are annotated with GraphQL protocol annotations
Fixed
- Name clashes when CDS elements are named
nodes
ortotalCount
- Parsing of
null
values in lists
v0.9.0
Added
- Message interpolation of logged errors, transforming error message placeholders into human-readable text (default locale)
Changed
- Moved registration of
cds.compile.to.gql
andcds.compile.to.graphql
targets from@sap/cds
to@cap-js/graphql
- Improve merging of custom
graphql
protocol configuration with plugin default configuration - Errors representing client errors (
4xx
range) are now logged as warnings instead of errors - Exclude the stack trace of the outer logged error message in multiple error scenarios, as the inner stack trace already contained the precise initial segment of the outer stack trace
Fixed
- Load custom
errorFormatter
relative to CDS project root - Fix internal server error when formatting errors that aren't CDS errors (thrown by CDS or in custom handlers) or instances of GraphQLError, such as the error caused by requests with undefined
query
property
v0.8.0
Added
- [beta] Translate CDS error messages and include additional error properties in
GraphQLError
extensions
. Only specific allowed properties are exposed when running in production. - [beta] Option
errorFormatter
that can be pointed to a function that overwrites the default logic of how CDS errors are formatted before they are added to the GraphQL error response. Please note that this may overwrite sanitization logic that is otherwise applied to error messages in production. - [beta] Logging of errors that occur during query and mutation execution
Changed
- Bump required
@sap/cds
version to>=7.3
- Bump required
graphql-http
version to^1.18.0
Fixed
- Malformed responses for convoluted queries in which parts of results are supposed to be returned multiple times, caused by formatting results in-place
v0.7.0
Changed
- Omit
variables
from log if it is an empty object
v0.6.2
Changed
- Pin
graphiql
version to^3
- Pin
@graphiql/plugin-explorer
version to~0.3
Fixed
- GraphiQL Explorer Plugin initialization due to upstream implementation pattern change
v0.6.1
Changed
- Improved query logging:
- Don't log queries that are
undefined
- Log
operationName
- Log
variables
when not in production - Sanitize arguments and their values in queries when in production
- Don't log queries that are
Fixed
- Changed GraphiQL Explorer Plugin CDN URL due to upstream renaming
v0.6.0
Added
- Support for
@sap/cds^7
middlewares and protocols. Note: services now need to be annotated with protocol annotations such as@graphql
or@protocol: 'graphql'
.
Changed
- Bump required
@sap/cds
version to>=7
@cap-js/graphql/index.js
now collects individual services and mounts the adapter as a protocol middleware on thecds.on('served', ...)
event- Moved the
GraphQLAdapter
module tolib/GraphQLAdapter.js
and merged it withCDSGraphQLAdapter
previously found inindex.js
in the root directory - Don't generate fields that represent compositions of aspects within mutation types that represent services
- Disabled conjunction on the same field for the following operators:
eq
(Equal)gt
(Greater Than)ge
(Greater Than or Equal)le
(Less Than or Equal)lt
(Less Than)startswith
endswith
v0.5.0
Changed
- Improved consistency of handling results of different types returned by custom handlers in CRUD resolvers:
- Wrap only objects (i.e. not primitive types or arrays) returned by custom handlers in arrays in create, read, and update resolvers
- Delete mutations return the length of an array that is returned by a
DELETE
custom handler or 1 if a single object is returned
- Don't generate fields for key elements in update input objects
- Update and delete mutations have mandatory
filter
argument - Allow services that are not instances of
cds.ApplicationService
. It is expected that the invoker provides the correct set of service providers when directly using the GraphQL protocol adapter API.
Fixed
- Aligned
cds.Request
instantiation with other protocols for more consistent usage in custom handlers