sid88in / sid88in/serverless-appsync-plugin
add in DefinitionS3Location support for GraphQL apis
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 955
- Forks
- 187
- PR merge metrics
- No merged PRs in 30d
Description
Scope & Context
So in our org we're currently hitting the CloudFormation template limit - and being frank it's causing us nothing but headaches. One solution that we're investigating is using DefinitionS3Location for uploading GraphQL APIs and passing in the template from there as a configuration option. We're using Terraform to manage S3 and other resources for us, so it wouldn't be too difficult for us but I'm aware that this may conflict with deployment ordering.
I saw this issue which had a similar case for using them on resolvers: https://github.com/sid88in/serverless-appsync-plugin/issues/589 but I saw that wasn't the direction we wanted to use for this package.
Example:
appSync:
schema:
s3:
bucket: my-schema-bucket
key: schema.graphql
And then it'll save a lot of template headroom.
Current behavior
At the moment, the text SDL for the GraphQL schema is currently uploaded as part of the CF template, and then we blow past the template limits.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the appSync.schema configuration and how its SDL is placed in the CloudFormation template. Compare the requested schema.s3 bucket/key shape with the resolver S3 case referenced in issue #589, while considering deployment ordering. Done means GraphQL APIs can use DefinitionS3Location without exceeding the template limit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, graphql, typescript
- Domain
- api, build-system, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100