The Hasura Community Call Roundup - May 2021
š What is the Hasura Community Call?
š£ Tanmai's Product Update
- Inherited Roles: Currently, we only allow for deriving 'table select' permissions for an inherited role and not for mutations/functions/remote schema permissions, etc. Hence, we want to bring three primary improvements in inherited roles to make them more usefulā
- Derive non-table select permissions for simpler cases where there is no scope for conflicting definitions.
- Allow explicit permissions definitions or inherited roles and unify 'roles' & 'inherited roles'.
- Try & handle special cases where there are no presets defined for the parent roles. - Schema Sharing: Have an idea about what you want to build in Hasura? How amazing would it be to be able to load a sample data model from an existing repository of schemas? We're working on bringing the ability to either create a new or load an existing sample schema into your database with the metadata associated to it which would make bootstrapping common use-cases from the community a lot easier. Tanmai gave a really cool sneak-peek of what you can be expecting.
š Vamshi talks One-to-One relationships & data sources!
- BigQuery: Google Big Query is one from our suite of data sources that you can leverage to create reusable GraphQL and REST APIs within minutes. Vamshi demonstrated the features that are currently supported on BigQuery.
- Citus: Citus transforms Postgres into a distributed database. It is one of the new generation of databases that aim to target both OLAP and OLTP use cases. Vamshi talked about the exciting work the team has been doing in bringing the official beta to you.
š The what, why, & how of Client SSL Certificates by Solomon
- Securely operate in a shared environment
- User has no visibility into the file system
- Simple integration into the existing metadata API and Console UX
- Stores certificate data into a secure vault
- "Lazily" writes certificates on the disk at runtime
- Leverage the existing env var system
š Tiru's Security 3x update
- Node Limit: This feature lets you restrict your API's runtime characteristics. This is useful when you want to customise the limits on your public facing APIs or restrict the operations that can be run to minimise the load. We already offer a similar feature called depth limit that helps limit the nesting in your GraphQL query. Similarly, the node limit feature lets you limit your API for a certain number of nodes. You can define the node limit both per role and globally for all roles.
- Disabling Introspection for Roles: This one is pretty self-explanatory. You can now disable the schema introspection for certain roles to expose less information in your GraphQL API to those users.
- Operation Timeout: This is yet another powerful security feature that allows you to configure an expiration time on your GraphQL operations on a per role or global level so that you can avoid certain operations running for longer times.
š Community Demo by Gus Fune
- Implementing Auth with Supertokens has rotating JWT keys. To avoid having to update their keys on their end, they implemented authentication using Webhooks on Hasura.
- To configure the Webhook on Hasura, they initially tested out lambdas and API gateways. However, they decided to build their own server to solve for latency in their Webhook configuration. This turned out to be faster than some of the other JWT providers out there.
- They open sourced their implementation that follows the Webhook pattern on their dedicated server. Check it out!
- The hasura-supertokens implementation has out-of-the-box support for role based access control with Hasura. Hasura checks with hasura-supertokens for a session handle to make sure the user id exists and changes in Hasura are reflected in real-time without refreshing the keys.
- You can return custom session variables for your production instances with the hasura-supertokens implementation. They're working on a tutorial that teaches how to do that, so keep your eyes peeled for it!
š„ The next community call: HasuraConā21 š„
Related reading