@pothos/plugin-authz
    TypeScript icon, indicating that this package has built-in type declarations

    3.3.0 • Public • Published

    AuthZ plugin

    This is a simple plugin for integrating with GraphQL AuthZ

    For more details on GraphQL AuthZ see the official documentation here

    Usage

    Install

    yarn add @pothos/plugin-authz

    Setup

    import AuthzPlugin from '@pothos/plugin-authz';
    
    const builder = new SchemaBuilder<{
      AuthZRule: keyof typeof rules;
    }>({
      plugins: [AuthzPlugin],
    });

    This plugin will add the rules to your schema, but you will still need to set up your server (or execute function) to run the authorization checks. The implementation of this depends on how your app is set up.

    A simple example that just wraps the execute function might look like:

    import { execute } from 'graphql';
    import { wrapExecuteFn } from '@graphql-authz/core';
    import rules from './auth-rules';
    
    const wrappedExecute = wrapExecuteFn(execute, { rules });

    Defining rules for fields

    builder.queryType({
      fields: (t) => ({
        users: t.field({
          type: [User],
          authz: {
            rules: ['IsAuthenticated'],
          },
          resolve: () => users,
        }),
      }),
    });

    Defining rules for types

    const Post = builder.objectRef<IPost>('Post');
    
    Post.implement({
      authz: {
        rules: ['CanReadPost'],
      },
      fields: (t) => ({
        id: t.exposeID('id'),
      }),
    });

    Install

    npm i @pothos/plugin-authz

    DownloadsWeekly Downloads

    191

    Version

    3.3.0

    License

    ISC

    Unpacked Size

    76.1 kB

    Total Files

    30

    Last publish

    Collaborators

    • hayes