Skip to content

☎️ Hasura Community Call: Meeting Minutes

Vishwa Mehta edited this page Dec 18, 2020 · 6 revisions

29 October 2020 (recording link)

  • Moderators: Vishwa
  • Note Taker: Shraddha Agrawal
  • Demos: Tiru, Gavin, Shahidh, Bostjan, Joseph

Multiple Databases in one Query by Tiru

  • Already in preview
  • Will be released in v1.4

Remote Schema Permissions by Tiru

  • currently: no authorization for remote schema, no headers rn
  • can add permissions to whitelist individual types/operations
  • show only join data authorised by the join
  • add constraints via presets using session variables

Postgres Volatile Functions as Mutations by Tiru

  • create a postgres function that does a sort of validation when executing mutations(here article length)
  • can also use role based permissions and use hasura session variables in the funcs
  • ie provide a session argument
  • author id will be set using postgres func from the hasura func
  • gels wells with the table permissions as well

Data Dictionary by Gavin

  • easy to understand various models and methods on APIs
  • Hasura POF: database, remote schema, action operations
  • model first not method first
  • 1000s of tables, tedious to look at data model
  • introspection query - exposes way more methods exposed than needed
  • information that is not available in introspection (eg - permissions)
  • capturing structured meta information about the models (docs)
  • 2 things:
    • GraphQL API: metadata
      • Role based: view of this information for a particular role
    • React components

GraphQL Observability with Hasura by Shahidh

  • using Hasura pro metrics, we can see
  • can see in errors tab how many times an individual operation is leading to error
  • upcoming feature: Datadog integration allows to export operation logs to your Datadog dashboard

We also have two community demos this time:

Digitalising Planning Poker #SCRUM with Hasura by Bostjan Cigan

  • poker came
  • using a cron job to clear the data no longer needed (every 8 hours)
  • saved 85.5% time in developing the backend
  • can add any feature: project is OSS
  • GRAPHONNN!

Deploying Hasura on KintoHub in minutes Demo by Joseph


27th August 2020 (recording link)

  • Moderators: Marion, Vishwa
  • Note Taker: Meera
  • Demos: Rishi, Auke, Allison, Gavin, Ryan Berckmans

Hasura Updates (recording)

  • Authorization on Metadata
  • Different kinds of admin (modify all of metadata, certain parts of metadata)
  • Login to Hasura as collaborator
  • Access only specific sources, tables and modify metadata for them
  • Usecases - Team CMS, Data platform
  • Github Integration
  • Git push to deploy migrations and metadata
  • Datadog exporter
  • Metrics
  • Traces
  • Securelink
  • An agent that you can run to expose your private database to Hasura Cloud directly

Production-ready offline-first (recording)

  • Learn course is now available
  • Offline first -> User facing features don’t worry about connectivity
  • Architecture
  • Offline Databases
  • Sync process keeps offline DB and Cloud DB in sync
  • RxDB - NoSQL, reactive, offline database
  • RxDB has a native GraphQL replication mechanism
  • Schema
  • Authorization
  • RxDB config
  • Querybuilders
  • RxDB document -> Querybuilder -> GraphQL Query
  • Hasura subscriptions + RxDB pull only when necessary

PDV Refactor (recording)

  • Refactor of the GraphQL Engine
  • 255 files changed, 15126 lines changed
  • Parse, don’t validate!
  • GraphQL query string -> String parsing phase -> validation phase -> resolution phase -> execution phase -> Postgresql
  • After PDV refactor: One step for validation + resolution.
  • Unify schema generation and query parsing code paths (avoid bugs when introducing new schema)
  • Automatically get GraphQL schema
  • Haskell: Functional, strongly typed
  • Compiler helps write and parse queries well
  • Parser objects generated. Parser combinator libraries are used
  • PDV Status - Testing ongoing. Query latency- performance as a side-effect. Release coming very soon.
  • OSS contributions and testing upcoming beta releases welcome!

Easier JWTs (recording)

  • HASURA_GRAPHQL_JWT_SECRET
  • Flexibility in token formats
  • New JWT secret config option. Claims_map
  • Mapping existing claims from Azure AD

GraphQL Transactions & CI/CD (recording)

  • GraphQL Tx over Websockets spec
  • New way to perform complex, multi-step data transactions
  • Init, Execute (queries/mutations), commit (socket closed) or abort
  • Github Actions CI/CD
  • Configure project path and other parameters

Community Updates by Marion (recording)

  • Data federations Webinar
  • Enterprise GraphQL Conference (21 and 22 October)

Community Demo (Ryan Berckmans) (recording)

  • Architecturing an unified global data view over 6 PG instances, for a legacy oil and gas company’s system
  • Toolchain that supports rapid evolution of the system
  • Uses Hasura in Kubernetes
  • Postgres foreign tables + Materialized views + Hasura
  • This architecture enabled easy change management and works out of the box

Register for the next community call here.


23rd July 2020 (recording link)

  • Moderator: Marion
  • Note Taker: Vishwa
  • Demos: Phil, Aleksandra, Gavin, Marion, Vilva Athiban

Automatic query caching (recording)

  • Hasura GraphQL Engine already does data caching in the form of query plans
  • Now it's possible to add the @cached & @cached(ttl: {seconds}) directive in the UI
  • Examples of cached data: public data with no session variables (latest variables), role based data (published articles)
  • Coming soon: restricted data (simple session data and arbitrary session variables)

Distributed tracing (recording)

  • Debugging tool for distributed systems made available in Hasura Cloud
  • Traces collected in APM tools: remote schemas, remote joins, actions, mutations, auth services, scheduled triggers etc.
  • Basic tracing will be made available in Hasura Cloud
  • Distributed tracing with APM integrations will be rolled out gradually

Large datasets on the Hasura console (recording)

  • Tracking tables & relationship on the Hasura console is now much faster
  • Problem: huge catalog of queries that was slow for large schemas - this affected the performance
  • Solution: splitting this information into two queries
  • Result: 5x improvement

Metadata SDK release (recording)

  • Automated type-checking and auto-complete in metadata YAML & JSON files
  • Included documentation

Event update (recording)

  • We'll have a webinar "GraphQL in Production with Hasura" on the 13th of August at 11am PST
  • Register here

OSS contributions (recording)

Redefine your queries on the client with hql-tag (Vilva Athiban) (recording)

  • hql-tag is a Hasura specific wrapper over GraphQL tag
  • Takes the AST from the GraphQL tag and customise queries based on our preferences without relying on the backend
  • Makes the queries more readable and elegant

Register for the next community call here.


27th May 2020 (recording link)

  • Moderator: Marion
  • Note Taker: Vishwa
  • Demos: Tanmai, Praveen, Tiru, Gavin, Marion, Avi Moondra

Upcoming v1.3.beta release (recording)

  • v1.3.beta will be out in a few days
  • Highlights: scheduled triggers, relay, remote joins
  • Relay demo
  • Authz testing
  • We've introduced a bug bounty program

Scheduled triggers (recording)

  • Cron Triggers: run periodically, configure declaratively (part of metadata)
  • One-off Scheduled Events: Schedule through API calls
  • Demo: scheduled triggers with an e-commerce schema

Remote joins (recording)

  • Create relationships across the database and remote schemas
  • Demo: explaining about remote joins

Hasura without the UI (recording)

  • Typed SDKs: Intellisense, realtime feedback while writing metadata, QuickType converts different type of data formats
  • Demo: convert metadata to YAML utility function

HasuraCon update (recording)

  • 3 workshops
  • Lots of talks

OSS contributions (recording)

Using actions for authentication in a game (Avi Moondra) (recording)

  • Demo: Fish Bowl game
  • Authentication requirements and how actions help to solve them
  • Using GraphQL subscriptions for game configurations

29th April 2020 (recording link)

  • Moderator: Marion
  • Note Taker: Vishwa
  • Demos: Tanmai, Rishi, KP, Tiru, Aleksandra, Gavin, Sean

Hasura Con'20 announcement (recording)

  • Hasura will host its first user conference from 3rd to 10th of June
  • Check out workshops and confirmed speakers on the event website
  • We're looking for speakers. Submit a talk here

v1.2 release party (recording)

  • v1.2 is out 🎉
  • Growth of contributors & Hasura team as one big family across many time zones
  • One of the most popular features of this release is actions: integrating custom business logic easily with REST APIs
  • A v1.2 refactor will allow us to add new features faster

Actions update (recording)

  • Actions now have query support: support for custom queries in actions
  • Actions now allow Postgres scalars like timestamptz, geography, JSONB
  • Improved debugging for actions: get metadata about error response
  • Action relationships: connecting actions to rest of the graph through relationships

Migrations workflow v2 (recording)

  • A new workflow has been introduced for Hasura migrations
  • Schema migrations are now isolated from metadata
  • There are no more YAML files, but SQL files
  • SQL files are incrementally added
  • Files are easier to review due to improved metadata tree
  • Performance improvement for schema migrations: time for 1k migrations improved from 30 minutes to 16 seconds

Permissions & data validations (recording)

CMS style features in the Hasura console (recording)

Relay support (recording)

  • Implementation challenge: using fragments, client-side magic of Relay
  • Hasura & Relay: Hasura has powerful GraphQL queries making it hard to generate SQL queries from Relay
  • Cosmetic additions: e.g. camelCase support
  • We'll add Relay support with v1.3

Community contributions: actions codegen (recording)

Community demo: AuthGuardian with Hasura by Sean Grove (recording)

  • AuthGuardian has specific support for Hasura
  • You can implement social media login with AuthGuardian
  • There is a structured editor for setting default roles and declaring rules
  • AuthGuardian can identify where to place the role in the JWT

Thank you so much for joining - see you next time! 👋

Clone this wiki locally