This changelog documents the changes between release versions.
Changes to be included in the next upcoming release
- Exported the
@hasura/ndc-lambda-sdk/connector
module to make it easier to build entirely new connectors that extend the existing functionality provided by the SDK (#45)
- Updated to use TypeScript v5.6.3 (#46)
- Updated the NDC TypeScript SDK to v7.0.0 (#44)
- Added support for exporting OpenTelemetry traces and metrics over GRPC. A new environment variable
OTEL_EXPORTER_OTLP_PROTOCOL
lets you switch betweenhttp/protobuf
andgrpc
. - By default OpenTelemetry is now exported over GRPC to
http://localhost:4317
. - To return to the old defaults, set the following environment variables:
OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"
- Added support for exporting OpenTelemetry traces and metrics over GRPC. A new environment variable
- Added
documentationPage
to the connector metadata to enable theddn
CLI to suggest documentation to users (#41) - Added multi-platform support to the
hasura/ndc-nodejs-lambda
docker image. It now supports both linux/amd64 and linux/arm64 platforms (#42) - Updated the NDC TypeScript SDK to v6.1.0 (#43)
- Support for querying nested collections inside an EXISTS expression in a predicate
- Use a Hasura-forked version of ts-node-dev (used for hot-reloading in watch mode) to upgrade deprecated dependencies (#43)
- Updated the NDC TypeScript SDK to v6.0.0 (#39)
- The
/health
endpoint is now unauthenticated
- The
- Updated TypeScript to v5.5.4 (#39)
- Updated the NDC TypeScript SDK to v5.2.0 (#38)
- The connector now listens on both ipv4 and ipv6 interfaces
- Added a default .gitignore that ignores node_modules in the connector template (#34)
- Updated the NDC TypeScript SDK to v5.0.0 (#35)
- The BigInt scalar type now uses the biginteger type representation
- Added
dotenv-cli
to the dev dependencies of the connector's default package.json to help with using .env files (#36)
- Removed type inference recursion limit (#33). This enables the use of very nested object graphs.
- Updated the NDC TypeScript SDK to v4.6.0 (#33).
- This enables the /metrics endpoint to return the default prometheus metrics
ConnectorError
s can be thrown and now use any HTTP status code
- Fixed watch mode not reloading after files with compiler errors are changed #27
- Fixed functions that are imported then re-exported causing a crash #28
- Support for NDC Spec v0.1.2 via the NDC TypeScript SDK v4.4.0 (#29).
- Built-in scalar types that support equality now define it in the NDC schema.
- Built-in scalar types now have an explicit type representation defined in the NDC schema.
- Fixed functions that return null causing crashes (#31)
- Added support for native connector packaging (#30)
- b3 (zipkin) OpenTelemetry trace propagation support via the NDC TypeScript SDK v4.5.0 (#32)
- Improved error messages when unsupported enum types or unions of literal types are found, and allow these types to be used in relaxed types mode (#17)
- Improved naming of types that reside outside of the main
functions.ts
file. Type names will now only be prefixed with a disambiguator if there is a naming conflict detected (ie. where two different types use the same name). Anonymous types are now also named in a shorter way. (#21) - Updated NodeJS to v20 and TypeScript to v5.4.2 (#23)
- Added a built-in Docker healthcheck, and ignored
node_modules
from the Docker build (#22)
- Updated to NDC TypeScript SDK v4.2.0 to include OpenTelemetry improvements. Traced spans should now appear in the Hasura Console
- Custom OpenTelemetry trace spans can now be emitted by creating an OpenTelemetry tracer and using it with
sdk.withActiveSpan
(#16)
- Updated to NDC TypeScript SDK v1.4.0 to include OpenTelemetry improvements. Traced spans should now appear in the Hasura Console
- Additional OpenTelemetry trace spans covering work done around function invocations
- Support for NDC Spec v0.1.0-rc.15 via the NDC TypeScript SDK v4.1.0 (#8, #10, #13). This is a breaking change and must be used with the latest Hasura engine.
- Support for nested object/array selection
- New function calling convention that relies on nested object queries
- New mutation request/response format
- New names for configuration environment variables
- The default port is now 8080 instead of 8100
- OpenTelemetry support improved, with additional spans covering work done around function invocation
- Prompts the user to pick between a version of ndc-lambda-sdk that works for Hasura DDN Alpha or Hasura DDN Beta
- OpenTelemetry support added via support for NDC TypeScript SDK v1.3.0 (#12)
- Support for "relaxed types" (#10)
- Add support for treating 'true | false' as a Boolean type (#7)
- Add support for JSDoc descriptions from object types (#3)
- Fix type name conflicts when using generic interfaces (#4)
- Improve error handling of errors thrown from functions (#5)
- The entire causal stack trace is now captured as an error detail for unhandled errors
sdk.Forbidden
,sdk.Conflict
,sdk.UnprocessableContent
can be thrown to return error details to GraphQL API clients
- Add support for parallel execution of readonly functions (#2)
- Add missing query.variables capability
- Disallow use of Map types and types with index signatures
- Add support for re-exporting functions from other files
- Fix queries with variables returning incorrect result format
- If a scalar value validation fails, return the error as an UnprocessableContent error
- Add minimum node engine version to template package.json
- Use pretty printing of logs in watch mode in the template
- Add latest version check to yeoman generator
- Rename
@pure
to@readonly
- Add JSONValue type for arbitrary JSON
- Block use of never, object, unknown, any and tuple types
- Block use of function types as args/return values
- Disallow use of union types in args and return types
- Remove custom scalar generation as an unknown type fallback
- Prevent usage of null or undefined literals on their own
- Add support for literal types
- Fix queries not using new response reshaping code
- Fix SIGTERM signal handling for clean docker container shutdowns
- Add BigInt support and rework scalar type handling
- Add support for Date types
- Allow promise typed return values
- Fix tsconfig relative pathing
- Fix error when no user tsconfig exists
- Initial release