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.