Authorising Users: More complex scenariosIn parts 1 and 2 we covered the basics of authorisation, and how to set up a permissions system in situations where the permissions vary only by the user's roles and memberships. We'll be building on the code presented in those parts, so it's a good ...Aug 23, 2023·11 min read
Reporting non-nullable violationsFind the complete code for this article on Github Over the first three parts of this series, we've built an Apollo Server plugin that reports all of the fields in each request and the possible types it could be. Today we'll extend this to analyse the...Jul 12, 2023·8 min read
Extending our plugin to report data typesFind the complete code for this article on Github We're building a safe way to transition our many nullable GraphQL fields to non-nullable. I covered why we want to do this in part 1, and in part 2 we built a simple Apollo server plugin that reports ...Jul 3, 2023·6 min read
Creating a simple Apollo Server pluginFind the complete code for this article on Github In part 1 we created a GraphQL directive @proposedNonNullable to provide a safe way of converting all our nullable GraphQL fields to non-nullable. In parts 2, 3, and 4 we will build out an Apollo Serv...May 30, 2023·10 min read
Removing Nullables: A Journey to a Cleaner GraphQL SchemaSince I joined at PERSUIT in 2022, we’ve embarked on many projects to modernise our codebase. One of our big ones is increasing our adoption of TypeScript. We wanted to generate TypeScript types for our GraphQL schema using graphql-codegen, but we ha...May 23, 2023·6 min read