Skip to content
Our sponsors
Kuizto — The Everyday Cooking App

1.0.0-rc.6

🌟 Help us spread the word about Prisma-AppSync by starring the repo.

🚨 This release include breaking changes, so please make sure to read the below thoroughly before upgrading.

Breaking

💔 Updated upsert<Model> mutation params to be similar to Prisma Client API

This change is considered breaking if you are using upsert mutations.

graphql
# before
mutation {
  upsertPost(
    where: { id: 1 }
    data: { title: "Hello world" }
  ) {
    title
  }
}

# after
mutation {
  upsertPost(
    where: { id: 1 }
    create: { title: "Hello world" }
    update: { title: "Hello world" }
  ) {
    title
  }
}

💔 Updated QueryParams.paths format to fix various reported issues on Shield ACL rules

This change fixes various reported issues on Shield ACL rules. See full details here. It also allows creating more granular rules such as createPost/**/connect{,/**}.

Only considered breaking if you have implemented advanced fine-grained access control rules, or if you are using QueryParams.paths for some custom business logic (most likely inside Hooks).

Example:

graphql
mutation createPost {
  createPost(
    data: {
      title: "Hello people"
      author: { connect: { id: 1 } }
    }
  ) {
    id
    title
  }
}

Before:

json
{
    "paths": [
        "/create/post/title",
        "/create/post/author/id",
        "/get/post/id",
        "/get/post/title"
    ]
}

After:

json
{
    "paths": [
        "createPost",
        "createPost/title",
        "createPost/author",
        "createPost/author/connect",
        "createPost/author/connect/id",
        "getPost",
        "getPost/id",
        "getPost/title"
    ]
}

Highlights

⚡️ Support for custom GraphQL scalars on fields

Prisma schema:

prisma
/// @gql(scalars: { website: "AWSURL" })
model Company {
  id       Int    @id @default(autoincrement())
  name     String
  website  String?
}

GraphQL output:

graphql
type Company {
    id: Int!
    name: String!
    website: AWSURL
}

⚡️ Support for nullable in Query filters

Example #1:

graphql
query {
  listUsers (
    where: {
      fullname: { isNull: true }
    }
  ) {
    id
  }
}

Example #2:

graphql
query {
  listPosts (
    where: {
      author: { is: NULL }
    }
  ) {
    id
  }
}

Example #3:

graphql
query {
  listPosts (
    where: {
      author: { isNot: NULL }
    }
  ) {
    id
  }
}

⚡️ Refreshed documentation

Prisma-AppSync documentation has been refreshed with new navigation, revised content, and a new guide on Tweaking the GraphQL Schema.

Fixes and improvements

Sponsors

kuizto.co
Solve and sparkle up your daily food life
travistravis.co
Collaborative travel planning

Credits

Sylvain
Sylvain

🐙 💻 🤔 📖
Bell
Bell

💻 🤔
Tom
Tom

💻 🤔
jeremy-white
jeremy-white

💻

Annoucements

Sylvain I am starting my Founder journey with kuizto.co. Kuizto is a bit like Netflix for your daily food! Lots of visual cooking inspiration, auto-generated grocery lists, and a small social layer to share and discover deliciously simple meals. Please register for early access, launching later this year!

Sylvain Prisma-EdgeQL is an edge-compatible Prisma Client (using PlanetScale driver). The project was initially built as part of my work at kuizto.co and will be released open-source soon. Please go Star the repo if you are interested!

Github sponsors

Enjoy using Prisma-AppSync? Please consider 💛 Github sponsors.

Released under the BSD 2-Clause License.