Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: convert multipart/form-data to base64 encoded payloads #1776

Merged

Conversation

cnuss
Copy link
Contributor

@cnuss cnuss commented Apr 16, 2024

Description

AWS API Gateway V2 sets isBase64Encoded: true and Base64 encodes body when the Content-Type is multipart/form-data.

Here's an event I captured from CloudWatch logs:

  event: {
    version: '2.0',
    routeKey: 'ANY /{proxy+}',
    rawPath: '/api/file',
    rawQueryString: '',
    cookies: [
      '__Secure-access=REDACTED',
      '__Secure-refresh=REDACTED'
    ],
    headers: {
      accept: 'application/json',
      'accept-encoding': 'gzip, deflate, br, zstd',
      'accept-language': 'en-US,en;q=0.9',
      'content-length': '77988',
      'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryfUJ9q6d7RNVDaA9B',
      host: 'g9kcjnmfv2.execute-api.us-east-1.amazonaws.com',
      origin: 'https://g9kcjnmfv2.execute-api.us-east-1.amazonaws.com',
      referer: 'https://g9kcjnmfv2.execute-api.us-east-1.amazonaws.com/api/swagger.html',
      'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
      'sec-ch-ua-mobile': '?0',
      'sec-ch-ua-platform': '"macOS"',
      'sec-fetch-dest': 'empty',
      'sec-fetch-mode': 'cors',
      'sec-fetch-site': 'same-origin',
      'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
      'x-amzn-trace-id': 'Root=1-661dfa6e-51b553562114a58a1327fa28',
      'x-forwarded-for': '136.226.56.198',
      'x-forwarded-port': '443',
      'x-forwarded-proto': 'https'
    },
    requestContext: {
      accountId: '471112697609',
      apiId: 'g9kcjnmfv2',
      domainName: 'g9kcjnmfv2.execute-api.us-east-1.amazonaws.com',
      domainPrefix: 'g9kcjnmfv2',
      http: [Object],
      requestId: 'WTQRXhwfoAMEV6g=',
      routeKey: 'ANY /{proxy+}',
      stage: '$default',
      time: '16/Apr/2024:04:11:26 +0000',
      timeEpoch: 1713240686818
    },
    pathParameters: { proxy: 'api/file' },
    body: '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b3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NTk2PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjExMDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KtcB8QQAAABxpRE9UAAAAAgAAAAAAAAEqAAAAKAAAASoAAAEqAACjIM6kpLYAAEAASURBVHgB7J0FfBRHG8Zf3Iq1WOlHi1uRFncpVopT3N2d4O7u7u7uVtzdtbi7W7D93nfS3exJLnfkApfwTH/J7s7Ozs7+Zy9lnnslxNu3bzVCAQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcJpACAgqTrNCQxAAARAAARAAARAAARAAARAAARAAARBQBCCo4EUAARAAARAAARAAARAAARAAARAAARAAARcJQFBxERiagwAIgAAIgAAIgAAIgAAIgAAIgAAIgAAEFbwDIAACIAACIAACIAACIAACIAACIAACIOAiAQgqLgJDcxAAARAAARAAARAAARAAARAAARAAARCAoIJ3AARAAARAAARAAARAAARAAARAAARAAARcJABBxUVgaA4CIAACIAACIAACIAACIAACIAACIAACEFTwDoAACIAACIAACIAACIAACIAACIAACICAiwQgqLgIDM1BAARAAARAAARAAARAAARAAARAAARAAIIK3gEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcJFAoAsqmqZRiBAhXBwWmoMACIAACIAACIAACIAACIAACIAACICAYwJfU3Nwu6Dy/v17+vDhA338+FFtP336RPKAKCAAAiAAAiAAAiAAAiAAAiAAAiAAAiDgTgJiwBEyZEgKHTo0hQoVSm3DhAnjzlv42ZfbBBVvb28SMeXdu3eGgCIPJT+wUPGTP06AAAiAAAiAAAiAAAiAAAiAAAiAAAh8JgEx4BBDDvmRIvpD2LBhSUSVcOHCfWavzl0WYEFFrFFETHn79q26oww8QoQIauCiEKGAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQGAS0LWJN2/eKEMPuVf48OEDVZsIkKAi1igipshW1J/IkSOrAQcmJPQNAiAAAiAAAiAAAiAAAiAAAiAAAiAAAn4REIOPFy9eKC8aMfoQSxXZurt8tqAiIoooP6ICRYoUiaJGjerusaE/EAABEAABEAABEAABEAABEAABEAABEPgsAs+ePaNXr16puCriSeNuUeWzBBURUXQzGrFKkR8UEAABEAABEAABEAABEAABEAABEAABEPAkAmKpIj96eBJ3hib5LEFFFB4xoYFliie9JhgLCIAACIAACIAACIAACIAACIAACICANQHdUkViqoiO4a7isqAiMVNevnypYqbEjBnTXeNAPyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQKAQePHigYqp89913bsv+47KgImKKiCrff/89AtAGyjSjUxAAARAAARAAARAAARAAARAAARAAAXcSEC+bx48fKzFFRBV3FJcElffv3yvfI8noEyNGDHfcH32AAAiAAAiAAAiAAAiAAAiAAAiAAAiAQKATePjwobJSkTiwomsEtLgkqEgg2tevX6uMPu70OwroQ+B6EAABEAABEAABEAABEAABEAABEAABEHBEQOLBSjyViBEjkmT9CWhxSVDR3X1ixYql0g4F9Oa4HgRAAARAAARAAARAAARAAARAAARAAAS+BAHJWHz//n23uf24JKg8ffqUNE2jOHHifIlnxT1AAARAAARAAARAAARAAARAAARAAARAwG0E7t69SyFChKBo0aIFuE+nBRURUp48eUKhQoUisVBBAQEQAAEQAAEQAAEQAAEQAAEQAAEQAIGgREAsVD5+/KgS7QR03E4LKnKjR48eIV1yQInjehAAARAAARAAARAAARAAARAAARAAga9CQE+f/MMPPwT4/hBUAowQHYAACIAACIAACIAACIAACIAACIAACAQFAhBUgsIsYYwgAAIgAAIg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'... 93984 more characters,
    isBase64Encoded: true
  },
  context: {
    callbackWaitsForEmptyEventLoop: [Getter/Setter],
    succeed: [Function (anonymous)],
    fail: [Function (anonymous)],
    done: [Function (anonymous)],
    functionVersion: '$LATEST',
    functionName: 'stack-express-pr-14-webapp',
    memoryLimitInMB: '1024',
    logGroupName: '/aws/lambda/stack-express-pr-14-webapp',
    logStreamName: '2024/04/16/[$LATEST]bd1b32cb599348439dc8e5501b5be483',
    clientContext: undefined,
    identity: undefined,
    invokedFunctionArn: 'arn:aws:lambda:us-east-1:471112697609:function:stack-express-pr-14-webapp',
    awsRequestId: 'fcd7b1d2-29be-4867-a186-7dcd001f01a0',
    getRemainingTimeInMillis: [Function: getRemainingTimeInMillis]
  }
}

Motivation and Context

Motivation is to have consistency with actual API Gateway V2.

How Has This Been Tested?

I added tests, but please let me know if you'd like to see more! Happy for any and all suggestions.

@cnuss cnuss marked this pull request as draft April 16, 2024 05:40
@cnuss cnuss marked this pull request as ready for review April 16, 2024 06:31
@cnuss
Copy link
Contributor Author

cnuss commented Apr 16, 2024

hi @dnalborczyk! let me know what you and the other maintainers think of this PR, cheers!

@cnuss cnuss changed the title Feat/is base64 encoded for api gateway v2 feat: handle multipart/form-data requests as base64 encoded payloads Apr 16, 2024
@cnuss cnuss changed the title feat: handle multipart/form-data requests as base64 encoded payloads feat: convert multipart/form-data to base64 encoded payloads Apr 16, 2024
@cnuss
Copy link
Contributor Author

cnuss commented Apr 18, 2024

hi @dherault! could you or one of the maintainers have a look at this PR? thank you!

@DorianMazur
Copy link
Collaborator

Thank you for the PR @cnuss! I'll have a look in the next coming days.
#1509 is possibly related to this PR.

@cnuss
Copy link
Contributor Author

cnuss commented Apr 20, 2024

thanks @DorianMazur I'll look at adding this to ApiGV1 in the meantime. I selfishly didn't do it cause I don't use V1 🤣

@cnuss
Copy link
Contributor Author

cnuss commented Apr 23, 2024

hi @DorianMazur I've added a fix for 1.0 payloads as well. please take a look when you're free! i'm eager to get this released

@DorianMazur
Copy link
Collaborator

Rerun tests

@DorianMazur DorianMazur reopened this Apr 25, 2024
@cnuss
Copy link
Contributor Author

cnuss commented Apr 26, 2024

hi @DorianMazur! is everything ok here?

@cnuss
Copy link
Contributor Author

cnuss commented Apr 27, 2024

hi @DorianMazur did you want more tests added to confirm everything is ok?

@DorianMazur
Copy link
Collaborator

Looks good!

@DorianMazur DorianMazur merged commit 2d9dbc2 into dherault:master Apr 27, 2024
18 checks passed
@cnuss
Copy link
Contributor Author

cnuss commented Apr 27, 2024

thank you @DorianMazur!! what's the ETA for a tagged version including this?

@cnuss
Copy link
Contributor Author

cnuss commented Apr 29, 2024

Closing the loop, this was released in https://github.com/dherault/serverless-offline/releases/tag/v13.5.0

thanks @DorianMazur !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants