sid88in / sid88in/serverless-appsync-plugin

Expose a public plugin API for extensions

Open
#722 0 comments 0 reactions 1 assignee View on GitHub

@sid88in is already working on this.

Since Jun 2, 2026.

enhancement
Dominant language
TypeScript
Stars
955
Forks
187
PR merge metrics
No merged PRs in 30d

Description

Split out from the v2 RFC (#378, item 2).

Context

External plugins that build on top of this one — most notably
serverless-appsync-simulator — end up re-implementing the parsing and normalization of
AppSync "assets" (resolvers, data sources, mapping templates, pipeline functions, the
resolved config). This duplicates logic that already lives here and drifts out of sync
when the config model changes.

Current state (v2)

The plugin has internal classes (Api, Naming, getAppSyncConfig, the resource
builders) but does not expose a stable, documented API surface for third parties to
consume. There is no supported extension point.

Proposal

Expose a small, stable, documented API that gives external plugins normalized access to
the parsed AppSync configuration and synthesized assets, so extensions can build on it
without copy/pasting internals.

Open questions
  • What exactly should be exposed (resolved config? compiled CloudFormation? both?)
  • How do we version/stabilize it so internal refactors don't break consumers?
  • Where does the boundary sit between "public API" and "internal implementation"?

Feedback welcome — this is a design discussion before any implementation.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.