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

Further improvements to awsx-apigateway #37

Closed
8 of 13 tasks
CyrusNajmabadi opened this issue Mar 22, 2019 · 12 comments
Closed
8 of 13 tasks

Further improvements to awsx-apigateway #37

CyrusNajmabadi opened this issue Mar 22, 2019 · 12 comments
Labels
kind/enhancement Improvements or new features resolution/fixed This issue was fixed

Comments

@CyrusNajmabadi
Copy link

CyrusNajmabadi commented Mar 22, 2019

Here's the list of low hanging areas we need to investigate and can potentially improve our apigateway efforts with:

  • Add an appropriate README.md that walks people through working with apigateway (similar to what we have in our other modues, like https://github.com/pulumi/pulumi-awsx/tree/master/nodejs/awsx/ec2)
  • Request Validation. This allows someone to set up simple validation that AWS can perform before it even calls through to the final endpoint. Good examples of how you use this found here: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html.
  • Client Certificates
  • Authorizors. We can really excel here as authorizors allow you to hook up lambdas to control the authorization control flow, and we would allow you to literally just inline the strongly-typed lambdas here right in your single pulumi definition.
  • Support for Cognito User Pool Authorizer
  • Api Keys. Note this may not really need much work on our end at all given the primitives in the aws package. But we should still make sure this works, and see if we can expose cleanly through awsx.
  • Usage Plans. This also ties into APIKeys. And, similar to API Keys, this may be trivial to support. But we should verify it's got a good experience around it and feels natural from the AWSX layer.
  • Custom Domains and Base Path Mappings. Some useful information here: https://datanextsolutions.com/blog/setup-custom-domain-for-an-api-in-aws-api-gateway/
  • Remove aws.apigateway.x.API which is a duplicate of the functionality here (I believe it is currently deprecated).
  • Implement the IntegrationRouteTargetProvider interface for some resources and add examples to the doc
  • Expose the resulting lambdas in some sort of object to allow users to access them for metrics (and potentially other use cases)
  • More standardized responses for failing API Keys and such. Most failing authorizers / apikeys return a 403 which is not correct. refer to: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#Client_error_responses
  • Add request validation, api keys, and authorizers for raw data routes -- which allow users to write raw Swagger. These 3 features require changes at the route level as well as the API level. We need to think about this a bit as it will get tricky to figure out how to blend the raw swagger coming in for routes plus the Swagger object we create.
@CyrusNajmabadi
Copy link
Author

Tagging @ekrengel

@ekrengel
Copy link

ekrengel commented Apr 8, 2019

I have a PR for Lambda Authorizers. We also will want to support Cognito User Pools, so I added it as a separate line item above.

@ekrengel
Copy link

ekrengel commented Apr 8, 2019

Looks like removing aws.apigateway.x.API was completed as part of 0.18.0 (Released March 28th, 2019).

@ekrengel
Copy link

Work Completed during M22:

  • Add Readme
  • request validation for parameters
  • Lambda and cognito authorizers
  • api keys + usage plans
  • expose resulting lambda for metrics

We will leave this open for M23 for further improvements.

@cmtoomey
Copy link

cmtoomey commented May 8, 2019

Would it also be possible to allow for the selection of API deployment types

  • Regional
  • Edge-optimized
  • Private

The use-case is that a user may want some flexibility in how their APIs are deployed (public consumption vs internal consumption).

@rarous
Copy link

rarous commented Aug 21, 2019

It would be nice to have some way to set restApi.minimumCompressionSize.

@naineel
Copy link

naineel commented Sep 27, 2019

Adding the ability to add resource policies would also be nice. https://docs.aws.amazon.com/en_pv/apigateway/latest/developerguide/apigateway-resource-policies.html

@RichiCoder1
Copy link

Not sure if this should be it's own ticket, but the ability to set cache control headers on Static Routes would be great. Either as a callback or as a glob map

@ekrengel ekrengel removed their assignment Jan 30, 2020
@vmachacek
Copy link

Hello, I'm trying to use IntegrationRouteTargetProvider for Lambda with Alias but still can't figure it out, some documentation / example would be nice.

@rarous
Copy link

rarous commented Oct 26, 2020

It would be nice to have ability to intercept generated swagger, so i can add/change stuff like x-amazon-apigateway-integration attributes. In my case I need to set cacheKeyParameters.

@danielrbradley danielrbradley added the resolution/fixed This issue was fixed label May 19, 2022
@danielrbradley
Copy link
Member

Closing as this appears to be a now-stale planning ticket.

@pulumi-bot
Copy link

Cannot close issue without required labels: kind/

@danielrbradley danielrbradley added the kind/enhancement Improvements or new features label May 19, 2022
@danielrbradley danielrbradley transferred this issue from pulumi/pulumi-awsx May 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement Improvements or new features resolution/fixed This issue was fixed
Projects
None yet
Development

No branches or pull requests

9 participants