@forrestjs/service-hasura-client

5.2.2 • Public • Published

Hasura Client for NodeJS

Configuration

forrest.run({
  settings: {
    hasura: {
      endpoint: 'http://localhost:8080',
      secret: 'hasura',
      auth: {
        token: 'token',
        jwt: {
          secret: 'abc',
          roles: ['r1', 'r2'],
          defaultRole: ['r1'],
          session: {
            foo: 'bar'
          }
        },
        fn: async () => ({
          token: 'token',
          ttl: 0
        })
      } 
    }
  }
})

👉 Only one auth setting is supported at any time.

Authorization Token

When you provide this setting, HasuraClient will use it as Authorization: Bearer {token}.

Authorization JWT

[[ TO BE IMPLEMENTED ]]

When you provide this setting, HasuraClient will calculate the JWT and use it as Authorization: Bearer {jwt}.

Authorization Logic

[[ TO BE IMPLEMENTED ]]

When you provide this setting you can calculate the authorization token by offering a custom logic.

  • the resulting token key will be used as Authorization: Bearer {token}.
  • the ttl will be used as cache flag:
    • 0 keep forever (until reboot)
    • -1 calculate at every query
    • 1000 keep for 1s (integer value expressed in milliseconds)

Query

const MY_QUERY = `
  query FooBar ($var: String!) {
    resource (
      par: $var
    ) {
      field1
      field2
    }
  }
`;

const myFeature = () => [{
  target: '$START_FEATURE',
  handler: async ({ getContext }) => {
    const hasura = getContext('hasura');
    const res = await hasura.query(MY_QUERY, {
      var: 'foobar'
    });

    console.log(res);
  }
}];

Sql

const myFeature = () => [{
  target: '$START_FEATURE',
  handler: async ({ getContext }) => {
    const hasura = getContext('hasura');
    const res = await hasura.sql(MY_QUERY, {
      var: 'foobar'
    });

    console.log(res);
  }
}];

Package Sidebar

Install

npm i @forrestjs/service-hasura-client

Weekly Downloads

1,152

Version

5.2.2

License

MIT

Unpacked Size

11.7 kB

Total Files

8

Last publish

Collaborators

  • marcopeg