Skip to content

Releases: apollo-server-integrations/apollo-server-integration-aws-lambda

v3.1.0

11 Aug 18:02
6c910bf
Compare
Choose a tag to compare

Minor Changes

  • #122 d1e8271 Thanks @BlenderDude! - Fixes missing decodeURIComponent during GET request parsing of query string for ALB and V1 event

v3.0.0

25 Jul 15:43
0450f9e
Compare
Choose a tag to compare

Major Changes

Minor Changes

  • #91 71c94df Thanks @BlenderDude! - ## Short circuit middleware execution

    You can now opt to return a Lambda result object directly from the middleware. This will cancel the middleware chain, bypass GraphQL request processing, and immediately return the Lambda result.

    Example

    export const handler = startServerAndCreateLambdaHandler(
      server,
      handlers.createAPIGatewayProxyEventV2RequestHandler(),
      {
        context: async () => {
          return {};
        },
        middleware: [
          async (event) => {
            const psk = Buffer.from('SuperSecretPSK');
            const token = Buffer.from(event.headers['X-Auth-Token']);
            if (
              psk.byteLength !== token.byteLength ||
              crypto.timingSafeEqual(psk, token)
            ) {
              return {
                statusCode: '403',
                body: 'Forbidden',
              };
            }
          },
        ],
      },
    );

v2.0.1

22 Feb 22:54
1de701e
Compare
Choose a tag to compare

Patch Changes

v2.0.0

24 Jan 19:26
56e516a
Compare
Choose a tag to compare

Major Changes

  • #67 5669d23 Thanks @BlenderDude! -

    Why Change?

    In the interest of supporting more event types and allowing user-extensibility, the event parsing has been re-architected. The goal with v2.0 is to allow customizability at each step in the event pipeline, leading to a higher level of Lambda event coverage (including 100% custom event requests).

    What changed?

    The second parameter introduces a handler that controls parsing and output generation based on the event type you are consuming. We support 3 event types out-of-the-box: APIGatewayProxyV1/V2 and ALB. Additionally, there is a function for creating your own event parsers in case the pre-defined ones are not sufficient.

    This update also introduces middleware, a great way to modify the request on the way in or update the result on the way out.

    startServerAndCreateLambdaHandler(
      server,
      handlers.createAPIGatewayProxyEventV2RequestHandler(),
      {
        middleware: [
          async (event) => {
            // event updates here
            return async (result) => {
              // result updates here
            };
          },
        ],
      },
    );

    Upgrade Path

    The upgrade from v1.x to v2.0.0 is quite simple, just update your startServerAndCreateLambdaHandler with the new request handler parameter. Example:

    import {
      startServerAndCreateLambdaHandler,
      handlers,
    } from '@as-integrations/aws-lambda';
    
    export default startServerAndCreateLambdaHandler(
      server,
      handlers.createAPIGatewayProxyEventV2RequestHandler(),
    );

    The 3 event handlers provided by the package are:

    • createAPIGatewayProxyEventV2RequestHandler()
    • createALBEventRequestHandler()
    • createAPIGatewayProxyEventRequestHandler()

    Each of these have an optional type parameter which you can use to extend the base event. This is useful if you are using Lambda functions with custom authorizers and need additional context in your events.

    Creating your own event parsers is now possible with handlers.createRequestHandler(). Creation of custom handlers is documented in the README.

v1.2.1

19 Jan 00:11
a42a257
Compare
Choose a tag to compare

Patch Changes

v1.2.0

17 Jan 16:48
0b9aacb
Compare
Choose a tag to compare

Minor Changes

Patch Changes

v1.1.0

02 Dec 18:07
056494e
Compare
Choose a tag to compare

Minor Changes

Patch Changes

v1.0.1

15 Oct 13:37
0a58d87
Compare
Choose a tag to compare

Patch Changes

v1.0.0

10 Oct 23:01
dc06e69
Compare
Choose a tag to compare

Major Changes

v0.1.1

26 Sep 22:38
ca247d8
Compare
Choose a tag to compare

Patch Changes

  • #20 8ae797f Thanks @trevor-scheer! - Update AS dependencies which incorporate a new response shape for supporting incremental delivery (which will not be supported by serverless integrations like this one)