-
Notifications
You must be signed in to change notification settings - Fork 2.8k
☎️ 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
- Already in preview
- Will be released in v1.4
- 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
- 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
- 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 API: metadata
- 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
- 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!
- KintoHub: https://www.kintohub.com
- host a dedicated hasura
- can see CPU, Memory, Persistence volume size, deploy timeout
- can see logs and High availability
- build, deployment and logs all in one place
- kinto cli to access the db
- https://docs.kintohub.com/getting-started/fullstack-example
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)
- 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)
- 30 PRs from community on TypeScript issue: woohoo!
- Server contributions for Haskell lovers!
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)
- Improved permissions: Check values with post-update check after the update mutation
- We have a new data validations page in docs
- Common data validation methods as of
v1.2
:
CMS style features in the Hasura console (recording)
- Bulk delete rows
- Persisting table state
- Accept query params for filters and order by
- Selector component for enum fields
- Selector components for foreign key relations
- GitHub issue with future console style features
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)
- You can build your own codegen for action handlers to get a boilerplate REST handler for the framework of choice
- Demo: GraphQL schema to Java type generator in a template
- GitHub repo with existing codegens
- We're looking for contributions on codegens! Refer to the GitHub issue
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! 👋