Detalhes do pacote

@aws-amplify/graphql-transformer-core

aws-amplify696.5kApache-2.03.4.4

A framework to transform from GraphQL SDL to AWS CloudFormation.

graphql, cloudformation, aws, amplify

readme (leia-me)

GraphQL Transform

Reference Documentation

@model

Object types that are annotated with @model are top level entities in the generated API. Objects annotated with @model are stored in DynamoDB and are capable of being protected via @auth, related to other objects via @connection, and streamed via @searchable.

Definition

directive @model(queries: ModelQueryMap, mutations: ModelMutationMap) on OBJECT
input ModelMutationMap {
  create: String
  update: String
  delete: String
}
input ModelQueryMap {
  get: String
  list: String
}

Usage

Define a GraphQL object type and annotate it with the @model directive to store objects of that type in DynamoDB and automatically configure CRUDL queries and mutations.

type Post @model {
  id: ID! # id: ID! is a required attribute.
  title: String!
  tags: [String!]!
}

You may also override the names of any generated queries and mutations as well as remove operations entirely.

type Post @model(queries: { get: "post" }, mutations: null) {
  id: ID!
  title: String!
  tags: [String!]!
}

This would create and configure a single query field post(id: ID!): Post and no mutation fields.

@auth

Object types that are annotated with @auth are protected by one of the supported authorization strategies. Types that are annotated with @auth must also be annotated with @model.

Definition

# When applied to a type, augments the application with
# owner and group based authorization rules.
directive @auth(rules: [AuthRule!]!) on OBJECT

input AuthRule {
  allow: AuthStrategy!
  ownerField: String = "owner"
  identityField: String = "username"
  groupsField: String
  groups: [String]
  queries: [ModelQuery]
  mutations: [ModelMutation]
}
enum AuthStrategy {
  owner
  groups
}
enum ModelQuery {
  get
  list
}
enum ModelMutation {
  create
  update
  delete
}

Authorization Strategies

Owner Authorization
# The simplest case
type Post @model @auth(rules: [{ allow: owner }]) {
  id: ID!
  title: String!
}

# The long form way
type Post @model @auth(rules: [{ allow: owner, ownerField: "owner", mutations: [create, update, delete], queries: [get, list] }]) {
  id: ID!
  title: String!
  owner: String
}

Owner authorization specifies that a user (or set of user's) can access an object. To do so, each object has an ownerField (by default "owner") that stores ownership information and is verified in various ways during resolver execution.

You may use the queries and mutations arguments to specify which operations are augmented:

get: If the record's owner is not the same as the logged in user (via $ctx.identity.username), throw $util.unauthorized(). list: Filter $ctx.result.items for owned items. create: Inject the logged in user's $ctx.identity.username as the ownerField automatically. update: Add conditional update that checks the stored ownerField is the same as $ctx.identity.username. delete: Add conditional update that checks the stored ownerField is the same as $ctx.identity.username.

IN PROGRESS

# TODO: (WORK IN PROGRESS) Does not yet support multi-owner
type Post @model @auth(rules: [{ allow: owner, ownerField: "owners", mutations: [create, update, delete], queries: [get, list] }]) {
  id: ID!
  title: String!
  owners: [String]
}
Group Authorization

Static Group Auth

# Static group auth
type Post @model @auth(rules: [{ allow: groups, groups: ["Admin"] }]) {
  id: ID!
  title: String
}

If the user credential (as specified by the resolver's $ctx.identity) is not enrolled in the Admin group, throw an unauthorized error via $util.unauthorized().

Dynamic Group Auth

# Dynamic group auth with multiple groups
type Post @model @auth(rules: [{ allow: groups, groupsField: "groups" }]) {
  id: ID!
  title: String
  groups: [String]
}

# Dynamic group auth with a single group
type Post @model @auth(rules: [{ allow: groups, groupsField: "group" }]) {
  id: ID!
  title: String
  group: String
}

With dynamic group authorization, each record contains an attribute specifying what groups should be able to access it. Use the groupsField argument to specify which attribute in the underlying data store holds this group information. To specify that a single group should have access use a field of type String. To specify that multiple groups should have access use a field of type [String].

@connection

The @connection directive allows you to specify relationships between @model object types. Currently this supports one-to-one, one-to-many, and many-to-one relationships. An error will be thrown when trying to configure a many-to-many relationship.

Definition

directive @connection(name: String) on FIELD_DEFINITION

Usage

Relationships are specified by annotating fields on an @model object type with the @connection directive.

Unnamed Connections

In the simplest case, you may define a one-to-one connection:

type Project @model {
  id: ID!
  name: String
  team: Team @connection
}
type Team @model {
  id: ID!
  name: String!
}

Once transformed you would then be able to create projects with a team via:

mutation CreateProject {
  createProject(input: { name: "New Project", projectTeamId: "a-team-id" }) {
    id
    name
    team {
      id
      name
    }
  }
}

Note: The Project.team resolver will be preconfigured to work with the defined connection.

Likewise you may make a simple one-to-many connection:

type Post {
  id: ID!
  title: String!
  comments: [Comment] @connection
}
type Comment {
  id: ID!
  content: String!
}

One transformed, you would create comments with a post via:

mutation CreateCommentOnPost {
  createComment(input: { content: "A comment", postCommentsId: "a-post-id" }) {
    id
    content
  }
}

Note: The "postCommentsId" field on the input may seem like a strange name and it is. In the one-to-many case without a provided "name" argument there is only partial information to work with resulting in the strange name. To fix this, provide a value for the @connection's name argument and complete the bi-directional relationship by adding a corresponding @connection field to the Comment type.

Named Connections

The name arguments specifies a name for the connection and is used to create bi-directional relationships that reference the same underlying foreign key.

For example, if you wanted your Post.comments and Comment.post fields to refer to opposite sides of the same relationship you would provide a name.

type Post @model {
  id: ID!
  title: String!
  comments: [Comment] @connection(name: "PostComments")
}
type Comment @model {
  id: ID!
  content: String!
  post: Post @connection(name: "PostComments")
}

One transformed, you would create comments with a post via:

mutation CreateCommentOnPost {
  createComment(input: { content: "A comment", commentPostId: "a-post-id" }) {
    id
    content
    post {
      id
      title
      comments {
        id
        # and so on...
      }
    }
  }
}

Performance

In order to keep connection queries fast and efficient, the graphql transform manages GSIs on the generated tables on your behalf. We bake in best practices to keep your queries efficient but this also comes with additional cost.

@searchable

The @searchable directive handles streaming the data of an @model object type and configures search resolvers that search that information.

Definition

# Streams data from dynamodb into opensearch and exposes search capabilities.
directive @searchable(queries: SearchableQueryMap) on OBJECT
input SearchableQueryMap {
  search: String
}

What is the Amplify GraphQL Transform

The Amplify GraphQL Transform is a set of libraries committed to simplifying the process of developing, deploying, and maintaining APIs on AWS. With it, you define your API using the GraphQL Schema Definition Language (SDL) and then pass it to this library where it is expanded and transformed into a fully descriptive cloudformation template that implements your API's data model.

For example, you might define the data model for an app like this:

type Blog @model @searchable {
  id: ID!
  name: String!
  posts: [Post] @connection(name: "BlogPosts")
}
type Post @model @searchable {
  id: ID!
  title: String!
  tags: [String]
  blog: Blog @connection(name: "BlogPosts")
  comments: [Comment] @connection
  createdAt: String
  updatedAt: String
}
type Comment @model {
  id: ID!
  content: String!
}

And then pass the schema to an instance of the GraphQLTransform class with the DynamoDB, @searchable, and Connection transformers enabled:

import GraphQLTransform from 'graphql-transformer-core';
import AppSyncDynamoDBTransformer from 'graphql-dynamodb-transformer';
import SearchableModelTransformer from 'amplify-graphql-searchable-transformer';
import AppSyncConnectionTransformer from 'graphql-connection-transformer';
import AppSyncAuthTransformer from 'graphql-auth-transformer';

const transformer = new GraphQLTransform({
  transformers: [
    new AppSyncDynamoDBTransformer(),
    new SearchableModelTransformer(),
    new AppSyncAuthTransformer(),
    new AppSyncConnectionTransformer(),
  ],
});
const cfdoc = transformer.transform(schema.readSync());
const out = await createStack(cfdoc, name, region);
console.log('Application creation successfully started. It may take a few minutes to finish.');

The GraphQLTransform class implements a single transform() function that when invoked parses the document, walks the AST, and when a directive such as @model is found invokes any relevant transformers. In this case the transformers were defined for you but the code is structured to make writing custom transformers as simple as possible. The output of the above code is a full CloudFormation document that defines DynamoDB tables, an OpenSearch cluster, a lambda function to stream from DynamoDB -> OpenSearch, an AppSync API, AppSync data sources, CRUD resolvers (create, update, delete, get, list, search), resolvers that implement connections between types stored in different DynamoDB tables, a number of minimally scoped IAM roles,

GraphQL Transform Libraries

The code is contained in a mono-repo that includes a number of packages that are related to the transform and a number of packages that are not. The related packages are broken up as follows

graphql-transform

The package contains the core of the library and acts as the entry point to the transform. The core class GraphQLTransform takes as config a list of transformers and handles the logic that parses the input SDL, walks the AST, and routes directives to transformers.

graphql-dynamodb-transformer

This package implements a number of directives that deal with DynamoDB. Out of the box, this implements the @model and connection directives.

amplify-graphql-searchable-transformer

This package implements any directives that deal with a searchable data source. Out of the box, this implements the @searchable directive.

graphql-auth-transformer

This package implements any directives related to authN or authZ workflows. Out of the box, it configures an Amazon Cognito UserPool and implements the @auth directive.

graphql-transformer-e2e-tests

This pacakge implements end-to-end tests for the transform libraries. It builds an API with the transform, deploys it via CloudFormation, and hits the AppSync data plane to test all generated code paths.

graphql-mapping-template

This package provides a lightweight wrapper around the AppSync Resolver VTL and is used by transformer libraries as a convenience.

Prerequisites

npm install -g lerna
npm install -g yarn

Installing

Install the dependencies

lerna bootstrap

And build

lerna run build

Running the tests

Tests are written with jest and can be run for all packages with

lerna run test

Alternatively, there are some debug configurations defined in .vscode/launch.json you can use Visual Studio code to add debug breakpoints to debug the code.

Contributing

TODO

Versioning

TODO

License

This project is licensed under the MIT License - see the LICENSE.md file for details

changelog (log de mudanças)

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

3.4.4 (2025-06-09)

Bug Fixes

  • skip location when deep cloning AST nodes (#3280) (06fec17)

3.4.3 (2025-04-17)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.4.2 (2025-04-09)

Reverts

3.4.1 (2025-03-06)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.4.0 (2025-02-26)

Features

3.3.6 (2025-02-07)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.3.5 (2025-01-30)

Bug Fixes

  • gen2: transform directives on fields of supported extended types (#3127) (3aca7b8)

3.3.4 (2025-01-16)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.3.3 (2024-12-23)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.3.2 (2024-12-17)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.3.1 (2024-11-14)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.3.0 (2024-11-08)

Features

  • add imported DDB tables for gen 2 migration in experimental state (#2992) (0c415b3)

3.2.2 (2024-10-28)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.2.1 (2024-10-17)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.2.0 (2024-10-10)

Bug Fixes

  • add aws_iam to custom operations when enableIamAuthorization is enabled; fix graphql type utils (#2921) (5cb5a2b)

Features

3.1.2 (2024-10-01)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.1.1 (2024-09-16)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.1.0 (2024-09-06)

Features

  • conversation: add conversation transformer (#2827) (cee6aef)

3.0.1 (2024-08-28)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

3.0.0 (2024-08-20)

  • feat!: bump version for v2 transformer packages (7dac35c)

BREAKING CHANGES

  • distinguish from LTS version

2.9.3 (2024-07-15)

Bug Fixes

  • add translation behavior to disable gen 1 patterns (#2670) (38d1a71)

2.9.2 (2024-07-02)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.9.1 (2024-07-01)

Bug Fixes

  • auth to use validateUsingSource in place of auth filter to show error message (#2523) (b7d83f9)

2.9.0 (2024-06-25)

Features

  • allow subscriptions to inherit primary model auth rules for relational fields behind a feature flag (#2649) (56a853a)

2.8.0 (2024-05-10)

Bug Fixes

  • fix reference-style relationship validation (#2533) (7b3cf0e)

Features

2.7.0 (2024-04-26)

Bug Fixes

  • add non-scalar and array fields to SQL relations (#2501) (511f020)

Features

  • allow multiple graphql APIs in a cdk app (#2406) (72ca6ba)

2.6.0 (2024-04-11)

Features

2.5.1 (2024-03-28)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.5.0 (2024-02-28)

Features

2.4.5 (2024-02-05)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.4.4 (2024-01-30)

Bug Fixes

2.4.3 (2024-01-22)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.4.2 (2023-12-18)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.4.1 (2023-12-14)

Bug Fixes

2.4.0 (2023-12-06)

Features

2.3.3 (2023-11-22)

Bug Fixes

  • Allow custom SQL statements without model declarations (#2087) (ea5b26c)

2.3.2 (2023-11-18)

Bug Fixes

  • regionalize lambda layer patching SNS topics (#2079) (6006c86)

2.3.1 (2023-11-16)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.3.0 (2023-11-15)

Bug Fixes

  • api: make id optional if not a string type (48ecac0)
  • Change 'rds' to 'sql' in public-facing symbols (#2069) (ff374dd)

Features

  • add managed table support in API construct (#2024) (96a0d94), closes #1849 #1903 #1940 #1971 #1973
  • add postgres engine and update types as needed (#1979) (5257d53)
  • add refersTo directive transformer for model renaming (#1830) (afbd6f2)
  • Add SQL database support to AmplifyGraphqlApi construct (#1986) (2ff63a5), closes #1917 #1983
  • api: add vpc endpoints for ssm (5a4ffc4)
  • api: custom queries support using sql directive (5214037)
  • api: postgres import workflow (a87203f)
  • api: rds has many support (42b4c9f)
  • api: refactor auth transformer to use vtl generator factory pattern (e965d24)
  • sql lambda provisioned concurrency (#2055) (d8c5bf0)
  • transformer behavior of replacing table upon gsi updates (#2067) (c4b7530)

2.2.4 (2023-11-02)

Bug Fixes

  • pass in and use correct lambda arn for lambdaauthorizers (#2007) (4114411)

2.2.3 (2023-10-12)

Bug Fixes

  • iterate over each document definition once (#1863) (a9477d3)

2.2.2 (2023-10-05)

Bug Fixes

  • iam auth values can be passed as cdk tokens (#1919) (9297fa5)

2.2.1 (2023-10-02)

Bug Fixes

2.2.0 (2023-09-20)

Features

  • disable amplify cfn outputs for cdk apps (0c72d18)

2.1.2 (2023-08-30)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.1.1 (2023-08-28)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

2.1.0 (2023-08-09)

Features

  • bump major version of transformer packages (2458c84)

1.4.0 (2023-07-21)

Features

  • graphql: pull rds latest layer (8325ef5)
  • graphql: vpc support for sql lambda (9cc4407)

1.3.8 (2023-07-17)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.7 (2023-07-07)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.6 (2023-07-07)

Bug Fixes

1.3.5 (2023-07-07)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.4 (2023-06-29)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.3 (2023-06-20)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.2 (2023-06-05)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.1 (2023-05-23)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.3.0 (2023-05-17)

Bug Fixes

  • auth: ownerfield as pk in relational models (#1389) (20a38bd)
  • build jobs (33c1495)
  • error flow when secrets do not work (6d04354)
  • global Amplify input type removed from compiled schema (f75af60)
  • graphql: add option to disable resolver deduping (30b32e9)
  • graphql: import rds errors due to primary key and index (dbb8efe)
  • graphql: make ids on nested non-model types required (#1429) (219884d)
  • PR feedback, windows build fix (5a3f9cc)
  • remove DB info from schema global input (d28a5cf)
  • remove dependency of v2 transformer core on schema generator (aabbe46)
  • store database also in parameter store (41cd7f3)

Features

  • graphql: read datasource type from schema file (d7f50e5)

1.2.1 (2023-04-25)

Bug Fixes

  • auth: ownerfield as pk in relational models (#1389) (9b636f7)
  • graphql: add option to disable resolver deduping (79b7620)

1.2.0 (2023-03-30)

Features

1.1.1 (2023-03-15)

Bug Fixes

  • graphql: revert circular dependency mock fix (e7c5688)

1.1.0 (2023-03-01)

Bug Fixes

  • error in transformers if override has never been setup (#1270) (bba14c3)
  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-beta.6 (2023-02-21)

Bug Fixes

  • error in transformers if override has never been setup (#1270) (bba14c3)
  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-beta.5 (2023-02-15)

Bug Fixes

  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-beta.4 (2023-02-03)

Bug Fixes

  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-beta.3 (2022-12-27)

Bug Fixes

  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-beta.2 (2022-12-12)

Features

  • 🎸 Added bracket mismatch error detection (40fdd88), closes #107

1.1.0-beta.1 (2022-11-30)

Features

  • 🎸 Added bracket mismatch error detection (40fdd88), closes #107

1.1.0-beta.0 (2022-11-18)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

1.1.0-cdkv2.2 (2022-11-15)

Bug Fixes

  • lock CDK v2 version (#923) (2afe40c)
  • resolution of nested stack template url (#893) (d18ff1a)
  • throw error if invalid override or invalid custom stack error (#982) (6dfeeba)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

1.1.0-cdkv2.1 (2022-10-24)

Bug Fixes

1.1.0-cdkv2.0 (2022-10-24)

Bug Fixes

  • resolution of nested stack template url (#893) (d18ff1a)
  • transformer: sort resolvers to avoid circular dependency (#797) (e9bf292)

Features

  • migrate index and model transformers to CDK v2 (#860) (886ab6c)

0.18.5 (2023-02-27)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.18.4 (2023-02-10)

Bug Fixes

  • transformer: conflict detection respects to per model rule (#1201) (9fd7e16)

0.18.3 (2023-01-26)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.18.2 (2023-01-12)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.18.1 (2023-01-12)

Bug Fixes

  • disable searchable nodeToNode encryption unless it is already deployed to mitigate impact from enabling or disabling. (#1152) (4a1c360)

Reverts

  • remove bracket check since it's causing customer issues in hosting (44d6e89)

0.18.0 (2022-12-03)

Features

  • 🎸 Added bracket mismatch error detection (40fdd88), closes #107

0.17.15 (2022-11-08)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.14 (2022-10-26)

Bug Fixes

  • replace deprecated cdk methods (fa513b5)

0.17.13 (2022-10-24)

Bug Fixes

  • transformer: sort resolvers to avoid circular dependency (#797) (e9bf292)

0.17.12 (2022-09-14)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.11 (2022-08-23)

Reverts

  • Revert "Undo change to directive merge that broke tests" (#756) (3da2ce6), closes #756

0.17.10 (2022-08-16)

Bug Fixes

  • amplify-graphql-index-transformer: read overrides during transformation (5e59d18)
  • set cfn values correctly when applying lambda-based conflict resolution (4542759)

Reverts

  • Revert "Feat: Single Source Read (#573)" (726d45a), closes #573

0.17.9 (2022-07-20)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.8 (2022-07-14)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.7 (2022-07-01)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.6 (2022-06-23)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.5 (2022-06-13)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.4 (2022-06-10)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.3 (2022-06-07)

Bug Fixes

  • correct behavior for CreateApiKey config (#463) (26ac8b3)

0.17.2 (2022-05-31)

Bug Fixes

  • correct behavior for CreateApiKey config (#463) (45bf5d4)

0.17.1 (2022-05-02)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.17.0 (2022-04-29)

Features

0.16.6 (2022-04-27)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.16.5 (2022-04-18)

Bug Fixes

  • graphql-model-transformer: fix create mutation when index field is null (#10073) (1e9d140)
  • improve instanceof checks to support custom transformers (#10188) (f2ac2b2)

0.16.4 (2022-04-07)

Bug Fixes

  • graphql: avoid duplicate function when overriding resolvers (#9980) (94398f8)

0.16.3 (2022-03-23)

Bug Fixes

  • graphql: avoid static datastructures in gql transform (#10006) (cd73fdd)

0.16.2 (2022-02-25)

Bug Fixes

  • graphql-auth-transformer: fix relational map key schema lookup when using LSI (#9722) (1794cda)

0.16.1 (2022-02-15)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.16.0 (2022-01-31)

Features

  • [@maps](https://github.com/maps)To directive to enable renaming models while retaining data (#9340) (aedf45d)

0.15.7 (2022-01-27)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.15.6 (2022-01-20)

Bug Fixes

  • remove functionName from transform-host lambdas (#9491) (959d6d8)

0.15.5 (2022-01-13)

Bug Fixes

  • clean up missing and unused GraphQL v2 dependencies (#9486) (a6ca44e)
  • use StackMapping for V2 resolvers (#9238) (d354e78)

0.15.4 (2022-01-10)

7.6.7 (2022-01-10)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.15.2 (2021-12-21)

Bug Fixes

  • graphql-model-transformer: @aws_lambda GQL transformer pass through directive list (#9231) (25f0c9d)
  • predictions lambda access policy type (#9058) (ef93353)

0.15.1 (2021-12-17)

Bug Fixes

  • update gql v2 custom transformer loading logic (#9252) (f728b4b)

0.15.0 (2021-12-03)

Bug Fixes

Features

  • provide helpful error message when GQL schema validation fails (#9159) (308706c)

0.14.0 (2021-11-23)

Features

0.13.2 (2021-11-21)

Bug Fixes

  • group response and request resolvers by slot (#8980) (74cbcc3)

0.13.1 (2021-11-19)

Bug Fixes

  • graphql-default-value-transformer: support for @default directive for required fields (#8906) (dc0179d)

0.13.0 (2021-11-17)

Bug Fixes

  • append apiKey if global auth is enabled and its not default auth (#8843) (3aadcde)
  • graphql-transformer-core: remove the allow_public_global directive references (#8751) (2eab995)
  • passing ddb params from root to nested model stacks (#8766) (7124cc0)

Features

  • graphql-transformer-core: add support for user defined slots (#8758) (87b532d)

0.12.1 (2021-11-15)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.10.0 (2021-11-11)

Bug Fixes

  • amplify-category-api: change auth directive type and fix codegen bug (#8639) (b8d838d)
  • datastore logical id (#8761) (e86cbb9)
  • graphql-model-transformer: override resource logical id to fix v1 to v2 transformer migration (#8597) (e3a2afb)
  • move @model params to root stack and fix ds logical id (#8736) (df4408c)
  • override http datasource logical IDs (#8714) (81cc461)
  • override none,DDB,lambda datasource logical IDs (#8723) (c534dc4)
  • revert none data source logical id override (#8734) (c83507b)
  • sub "_" with hash in resource logical ID in transformer v2 (#8600) (6bb620b)

Features

  • amplify-provider-awscloudformation: change sandbox mode syntax in schema (#8592) (a3bdd44)

0.9.2 (2021-10-10)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.9.1 (2021-09-27)

Bug Fixes

  • graphql-model-transformer: @model conflict resolution (#8035) (f3bdc4a)
  • graphql-model-transformer: iam role name does not exceed 64 characters (#8244) (812a671)
  • graphql-transformer-core: add default api name when generating stack (#8201) (fe52f9b)

0.9.0 (2021-09-02)

Features

0.8.2 (2021-08-24)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.8.1 (2021-08-06)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.8.0 (2021-07-30)

Features

  • capability injection for the vNext GraphQL Transformer (#7735) (f3eae13)

0.7.2 (2021-07-27)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.7.1 (2021-07-16)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.7.0 (2021-07-12)

Features

0.6.3 (2021-06-30)

Bug Fixes

  • correct featuer typo in gql transformer v2 (#7584) (81659ee)

0.6.2 (2021-06-24)

Bug Fixes

  • graphql-transformer-common: improve generated graphql pluralization (#7258) (fc3ad0d), closes #4224

0.6.1 (2021-05-26)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.6.0 (2021-05-18)

Features

0.5.0 (2021-05-03)

4.50.1 (2021-05-03)

Features

0.4.0 (2021-05-03)

Features

0.3.4 (2021-03-05)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.3.3 (2021-02-26)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.3.2 (2021-02-11)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.3.1 (2021-02-10)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.3.0 (2020-12-11)

Features

0.2.1 (2020-11-22)

Note: Version bump only for package @aws-amplify/graphql-transformer-core

0.2.0 (2020-11-22)

Features

0.1.0 (2020-11-08)

Features

6.21.2 (2020-08-14)

Note: Version bump only for package graphql-transformer-core

6.21.1 (2020-08-11)

Bug Fixes

6.21.0 (2020-07-29)

Features

6.20.0 (2020-07-23)

Features

6.19.5 (2020-07-18)

Note: Version bump only for package graphql-transformer-core

6.19.4 (2020-07-15)

Note: Version bump only for package graphql-transformer-core

6.19.3 (2020-06-25)

Reverts

  • Revert "fix: change scope of hashed files for AppSync (#4602)" (73aaab1), closes #4602

6.19.2 (2020-06-18)

Bug Fixes

Performance Improvements

  • optimize appsync file upload and bucket exist check (#4533) (f45d32b)

6.19.1 (2020-06-11)

Reverts

6.19.0 (2020-06-10)

Features

  • graphql-key-transformer: add query automatically for named keys (#4458) (3d194f8)

6.18.2 (2020-06-02)

Note: Version bump only for package graphql-transformer-core

6.18.1 (2020-05-26)

Bug Fixes

6.18.0 (2020-05-15)

Features

  • support for overriding pipeline function templates in transformer (#4196) (e1830ae), closes #4192

6.17.1 (2020-05-08)

Bug Fixes

  • #3438, many-to-many with conflict resolution generated wrong schema (#4171) (9e8606c)
  • use ES external versioning when using DataStore (#4127) (cef709b)

6.17.0 (2020-04-23)

Features

  • amplify-category-api: allow minified CF stack templates (#3520) (6da2a63), closes #2914

6.16.1 (2020-03-22)

Bug Fixes

6.16.0 (2020-03-07)

Bug Fixes

  • graphql-auth-transformer: add list support for ownerField in subs (#3166) (8d68277)

Features

  • graphql-transformer-core: allow user overrides for functions (#3367) (787128f), closes #3359

Reverts

  • Revert "fix(graphql-auth-transformer): add list support for ownerField in subs (#3166)" (#3572) (d693e6b), closes #3166 #3572

6.14.1 (2020-03-05)

Note: Version bump only for package graphql-transformer-core

6.13.3 (2020-02-13)

Note: Version bump only for package graphql-transformer-core

6.13.2 (2020-02-07)

Note: Version bump only for package graphql-transformer-core

6.13.1 (2020-01-24)

Note: Version bump only for package graphql-transformer-core

6.13.0 (2020-01-23)

Bug Fixes

  • pass appsync specific directives to model gen (#3211) (c9a6ada)
  • upgrade to node10 as min version for CLI (#3128) (a0b18e0)

Features

6.12.0 (2020-01-09)

Bug Fixes

  • upgrade to node10 as min version for CLI (#3128) (a0b18e0)

Features

6.11.0 (2019-12-31)

Features

6.10.0 (2019-12-28)

Features

6.9.0 (2019-12-26)

Features

6.8.0 (2019-12-25)

Features

6.7.0 (2019-12-20)

Features

6.6.0 (2019-12-10)

Features

6.4.0 (2019-12-03)

Features

6.3.0 (2019-12-01)

Features

6.2.0 (2019-11-27)

Features

6.1.0 (2019-11-27)

Features

5.0.0 (2019-08-30)

Bug Fixes

  • #1715 - Fix stack enumeration so transform.conf.json will be generated (#2114) (d1b266b)

Features

BREAKING CHANGES

  • If an owner is used in the auth directive it will either be a requirement if it's the only rule or an optional input if used with other rules
  • If an owner is included in the auth directive it will either be a requirement if it's the only rule or an optional input if used with other rules
  • the subscription operations will require an argument if owner is the only auth rule
  • Subscriptions will require an argument if an owner is only rule set - If owner & group rules are owner will be an optional arg

4.0.0 (2019-08-28)

Bug Fixes

  • #1715 - Fix stack enumeration so transform.conf.json will be generated (#2114) (d1b266b)

Features

BREAKING CHANGES

  • If an owner is used in the auth directive it will either be a requirement if it's the only rule or an optional input if used with other rules
  • If an owner is included in the auth directive it will either be a requirement if it's the only rule or an optional input if used with other rules
  • the subscription operations will require an argument if owner is the only auth rule
  • Subscriptions will require an argument if an owner is only rule set - If owner & group rules are owner will be an optional arg

3.11.0 (2019-08-13)

Features

3.10.0 (2019-08-07)

Features

3.9.0 (2019-08-02)

Features

3.8.0 (2019-07-31)

Features

3.7.5 (2019-07-24)

Note: Version bump only for package graphql-transformer-core

3.7.4 (2019-06-30)

Note: Version bump only for package graphql-transformer-core

3.7.2 (2019-06-26)

Note: Version bump only for package graphql-transformer-core

3.7.1 (2019-06-12)

Note: Version bump only for package graphql-transformer-core

3.7.0 (2019-05-29)

Features

3.6.3 (2019-05-21)

Note: Version bump only for package graphql-transformer-core

3.6.2 (2019-05-17)

Note: Version bump only for package graphql-transformer-core

3.6.1 (2019-05-07)

Note: Version bump only for package graphql-transformer-core

3.6.0 (2019-04-16)

Features

3.5.1 (2019-04-09)

Note: Version bump only for package graphql-transformer-core

3.4.0 (2019-04-03)

Features

  • graphql-elasticsearch-transformer: map output to stack (b7a8f6d), closes #1047
  • graphql-elasticsearch-transformer: test output to stack map (cf8b0be), closes #1047

3.0.9 (2019-03-22)

Note: Version bump only for package graphql-transformer-core

3.0.8 (2019-03-05)

Bug Fixes

  • ignore file starting with a dot when compiling configs (#905) (f094160)

3.0.7 (2019-02-20)

Note: Version bump only for package graphql-transformer-core

3.0.6 (2019-02-12)

Bug Fixes

  • cloudform/type versions (ec6f99f)

3.0.5 (2019-02-11)

Note: Version bump only for package graphql-transformer-core

3.0.3 (2019-02-11)

Note: Version bump only for package graphql-transformer-core

3.0.3-beta.0 (2019-02-11)

Note: Version bump only for package graphql-transformer-core

2.0.1-multienv.0 (2018-12-31)

Bug Fixes

  • update grahql transformer package versions for multienv (8b4b2bd)

1.0.33 (2018-11-09)

Note: Version bump only for package graphql-transformer-core

1.0.33-beta.0 (2018-11-09)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.32 (2018-11-05)

Note: Version bump only for package graphql-transformer-core

1.0.32-beta.0 (2018-11-05)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.31 (2018-11-02)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.30 (2018-11-02)

Note: Version bump only for package graphql-transformer-core

1.0.30-beta.0 (2018-11-02)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.29 (2018-10-23)

Note: Version bump only for package graphql-transformer-core

1.0.29-beta.0 (2018-10-23)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.28 (2018-10-18)

Note: Version bump only for package graphql-transformer-core

1.0.28-beta.0 (2018-10-12)

Bug Fixes

  • graphql-transformer-core: Fix Readme.md docs for the [@auth](https://github.com/auth) directive (db6ff7a)

1.0.12 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.11 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.10 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.9 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.8 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.7 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.6 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.5 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.4 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.3 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.2 (2018-08-23)

Note: Version bump only for package graphql-transformer-core

1.0.1 (2018-08-23)

Note: Version bump only for package graphql-transformer-core