April 2021 Summaries
19 posts from Hasura
Filter
Month:
Year:
Post Summaries
Back to Blog
Hasura has released version 2.0.0-alpha.10, bringing aggregate fields to MS SQL Server and support for Google BigQuery. The release also includes various fixes detailed in the changelog. This is a work in progress, and feedback on any issues experienced is welcome. Future releases will be announced via blog posts, Twitter (@HasuraHQ), Discord, and GitHub Release page.
Apr 30, 2021
441 words in the original blog post.
The Hasura team has released version 2.0 with support for multiple database backends, including Microsoft SQL Server. They plan to add more backends like Google BigQuery, MySQL, and Citus in the future. However, different databases have varying levels of SQL feature support, which poses challenges when generalizing Hasura features across all backends. The team is working on abstractions for code generation, querying functionality, subscriptions, action relationships, and other language features to address these issues. They aim to provide a compact set of abstractions with clear semantics and reference implementations for each backend.
Apr 29, 2021
2,527 words in the original blog post.
This tutorial demonstrates how to build an image storage integration with Hasura that automatically tags images using Cloudinary and Autocode. The user journey involves uploading a photo, waiting for analysis, receiving suggested categories, and saving them to the right location. The data journey includes uploading a binary to a CDN, persisting a reference along with user and user data in a database, updating the image with suggested categories, presenting that data to the user, and returning their confirmations back into the database.
The architecture is simplified using Hasura's "actions" feature, which allows for custom resolvers that expose webhooks as part of an API. The stack includes Cloudinary for image analytics, storage, and auto tagging; Autocode for managing the resolver or proxy; and Hasura for user-data persistence layer service orchestration.
Modeling data using Hasura Console involves creating a join table to support individual images having individual tags with their own confidence rating. Custom business logic is handled by Autocode, which includes promise wrappers around Cloudinary SDK, simple transformation utility, and glue layer for stitching services together.
The API is now shippable and can be consumed on web-aware clients. Monitoring and performance tuning are crucial for resilient apps, with Hasura offering error monitoring, response time tracking, tracing, and the ability to convert actions to asynchronous events.
Apr 29, 2021
1,083 words in the original blog post.
In this post, Adron discusses primary keys and their types in relational databases. He explains the different kinds of primary keys a table can have, including super key, candidate key, alternate key, compound key, composite key, and surrogate key. Additionally, he provides two videos related to specific primary keys: UUIDs & creating Short URL Safe UUIDs. Furthermore, Adron talks about character data and numeric data types in GraphQL and how they map back against Postgres types. He also shares a reference grid that maps Postgres types to their respective API types in Hasura served GraphQL JSON result objects.
Apr 27, 2021
1,180 words in the original blog post.
Testing Hasura GraphQL APIs with Karate involves creating unit tests to ensure the reliability of GraphQL queries as changes are made to the API, highlighting the differences between testing GraphQL and REST endpoints. While REST endpoints typically return a 200 (ok) status for successful requests, GraphQL can return partial successes with errors, necessitating more nuanced testing approaches. Karate, an open-source test automation suite, is used to test Hasura's GraphQL API, offering features like browser automation, parallel testing, and Cucumber HTML test reporting. The process involves setting up a Docker environment, configuring tests with queries and variables, customizing headers, and employing assertion functions to validate responses and ensure data integrity. Tests are run within a Docker container, with results outputted both to stdout and a detailed HTML report, providing comprehensive insight into the API's performance and correctness.
Apr 26, 2021
968 words in the original blog post.
The text discusses the monitoring features of Hasura, a platform that helps developers optimize their applications. It provides an overview of various sections in the Hasura console, including Overview, Errors, Usage, Operations, Websockets, and Subscription workers. These sections provide detailed metrics on API requests, errors, application usage, websocket connections, and subscription queries. The monitoring tooling is integrated into the same infrastructure as the applications, ensuring accurate data collection.
Apr 23, 2021
392 words in the original blog post.
In this blog post, the author shares the story of Hasura's monorepo and internal tooling that facilitates day-to-day engineering work. The Hasura monorepo was created to keep the open source version (OSS) and commercial codebases in sync. Previously, there were two GitHub repositories for OSS and pro versions of graphql-engine. However, as the team scaled and the frequency of commits increased, it led to problems such as breaking changes and delays in identifying issues. The birth of the monorepo aimed to improve the workflow by preserving histories from multiple repositories and ensuring that nothing was merged into OSS without first testing the pro codebase. Google's open-source tool called copybara was used for this purpose, but it had some limitations. GitHub Actions were employed for automation tasks such as shadowing commits between monorepo and OSS repo. The author concludes by expressing interest in hearing about other tools and workflows that could help improve the engineering productivity at Hasura.
Apr 22, 2021
1,417 words in the original blog post.
Hasura has released version 2.0.0-alpha.9, continuing its journey towards a fully feature stable release. This update introduces support for comparing columns across related tables in permission's boolean expressions and includes a changelog and quickstart guide. The company plans to blog about each release moving forward, providing updates on Twitter, Discord, and GitHub. Users are encouraged to try out the new version and provide feedback.
Apr 21, 2021
366 words in the original blog post.
This post introduces support in Hasura 2.0 for queries on hierarchical data structures using Postgres ltree operators. Ltree is a Postgres extension that enables powerful search functionality and can be used to model, query, and validate hierarchical and arbitrarily nested data structures. The newly supported ltree comparison operators include _ancestor, _descendant, _matches, _matches_fulltext, and their *_any variants. These operators allow for efficient querying of hierarchical data in Hasura applications.
Apr 21, 2021
889 words in the original blog post.
Hasura has released version 2.0.0-alpha.8, continuing its journey towards a fully feature-stable release. Though labeled as an alpha version, the quality is not compromised. The changelog and docker quickstart are available for users to explore new features and improvements. In the future, Hasura will announce releases via blog posts, Twitter (@HasuraHQ), Discord, and GitHub Release page.
Key updates in this release include support for 3D PostGIS operators like ST_3DDWithin and ST_3DIntersects in boolean expressions. Additionally, null values can now be used in boolean expressions with the help of the HASURA_GRAPHQL_V1_BOOLEAN_NULL_COLLAPSE environment variable. Transactions for Postgres mutations have also been introduced in this release.
Users are encouraged to try out the new version and provide feedback on any issues or improvements needed. Hasura can be reached on Twitter, GitHub, and Discord for further discussions and support.
Apr 20, 2021
744 words in the original blog post.
In Hasura Cloud, users can enable logging of input variables and response body analysis to better understand customer needs and optimize their offerings. By capturing query variables, businesses gain insights into how customers use their applications, products, or services. GraphQL's flexibility allows for highly implementation-specific logging, making it a valuable tool for understanding user behavior. Hasura Cloud is updating its UI to include options for enabling response body analysis and capturing query variables in the near future.
Apr 19, 2021
179 words in the original blog post.
Remote schema joins enable efficient federated data management by providing a GraphQL endpoint for connecting disparate data sources from different systems under a single API. This approach is beneficial when dealing with various types of data, such as user activity data and editorial content, which have distinct access requirements and cache needs. Additionally, remote schema joins allow developers to integrate new technologies or design patterns into existing architectures without sacrificing developer velocity. Hasura Remote Joins offer a solution for data federation, enhancing application development by simplifying the process of joining data across multiple sources.
Apr 19, 2021
258 words in the original blog post.
The text discusses the challenges of tracking and tracing errors in serverless architecture, particularly when using Hasura Cloud. It highlights that Hasura Cloud is a natural place for identifying the root cause of problems due to its position at the intersection of the entire application stack. The text mentions an error handling feature available under the monitoring tab in Hasura Cloud, which allows users to trace various aspects of errors and filter them by different vectors. Additionally, it mentions a deep-dive video on using this error monitoring tab for improving customer service response times and application hardening. Lastly, it refers to an article on top GraphQL errors and how to fix them.
Apr 15, 2021
161 words in the original blog post.
HasuraCon'21 is a user conference announced by Hasura, focusing on users from all over the world and featuring deep-dive technical content. The event will take place on June 23rd and 24th and is free to register for. Four speakers have been announced so far, including Hasura CEO Tanmai Gopal and VP of Engineering Davy Stevenson, as well as Guillermo Rauch from Vercel and Erik Reyna from the Washington Post. The CFP (Call for Papers) is open for interested participants to submit their talk ideas. The conference will cover a range of topics related to Hasura, including use-cases, modernization stories, potential industry impact, reference architecture, tooling, product integrations, and community-oriented talks. All types of humans are welcome at the event, which aims to be diverse and inclusive.
Apr 14, 2021
647 words in the original blog post.
The use of GraphQL in government technology is a topic that has been increasingly discussed. Questions regarding its appropriateness for legacy tech, its role in modernization projects, and its functionality within highly regulated environments filled with a mix of modern and legacy systems have arisen. However, the answer to all these questions is yes.
GraphQL Asia recently hosted a talk by Bharat Kashyap, a software engineer at Samagra Development Associates, which focused on GraphQL adoption in government. The Central Tech Team at Samagra has been working towards creating a culture of using open-source, scalable, and fast tech for government use cases. They have enabled tracking and monitoring of student and teacher attendance in all public schools of Haryana, built the technology architecture behind Mission Prerna in Uttar Pradesh, and helped Himachal Pradesh be declared the country's best state in terms of learning continuity in 2020.
The evolution of government technology has been divided into three phases: computerization, digitization, and public digital infrastructure. The latter is an emergent property and less well-defined than the others but plays a significant role in modernizing government systems.
One example use case discussed was e-Samwad, which refers to "digital public goods for school education" and includes a mobile application for a parent-student interface, a unified student database, and a learning progress monitoring system. This same capability has been taken and used to solve similar challenges in neighboring states.
The challenges faced by government tech providers include migration from legacy systems with a focus on the wide variety of products already deployed in the public sector. The second challenge was particularly interesting and was called 'Community'. It highlighted that sometimes, the features that would be prioritized for governments are not the ones being prioritized by the community.
The benefits of using GraphQL include its speed, configurability, and scalability. In fact, the solutions referenced in the talk are deployed in a region with a population of 200 million! Security and compliance are also important topics when considering GraphQL's use in highly regulated environments. Hasura Cloud has attained SOC2 type 1 and HIPAA certifications to address these concerns.
To learn more about GraphQL, resources such as high-level overviews, comparisons with REST, and information about the GraphQL community are available. Additionally, trying out Hasura Cloud's free tier can provide hands-on experience in exploring its offerings.
Apr 12, 2021
953 words in the original blog post.
Pipe, a fintech startup with over 3000 companies signed up and $1B in tradable ARR, has been using Hasura to synchronize data access to their database. The company's architecture includes Hasura as a fantastic way to plug into their database and remove the need for custom data fetching routes. Pipe's engineering team now consists of 11 engineers, with 50% fewer front-end developers required than initially planned due to Hasura's integration. Query performance has been satisfactory without extensive customization or planning, and the permissions model allows Pipe to model its business logic with simplicity. The process of using, testing, and adopting Hasura took only 11 days from discovery to production, following an incremental approach to deployment.
Apr 08, 2021
616 words in the original blog post.
The text discusses an integration between Hasura Cloud project and Datadog, a monitoring service. This integration allows observation of all GraphQL queries and mutations made against the Hasura API, as well as tracking query success, failure, errors, and exceptions. It also mentions that Hasura has integrated with New Relic recently. The text provides a video guide on how to add Datadog to your Hasura Cloud project in simple steps. Monitoring and tracking are crucial for building robust tech-stacks, and this integration simplifies APM infrastructure and logging infrastructure. Currently, the integration sends five metrics related to http and ws requests. Additional metrics will be added in the future. The text also provides a link to the documentation on how to get started with this integration.
Apr 08, 2021
227 words in the original blog post.
Hasura has introduced a new integration with New Relic for its APM monitoring system. This feature is available for Hasura Cloud's Standard Plan and Enterprise for on-prem or private cloud deployments, expanding support for logging and metrics to more teams. Integrating New Relic with Hasura Cloud involves copying access tokens into the Hasura project configuration. Observability is crucial in building resilient tech stacks, and this native integration simplifies APM infrastructure and logging infrastructure. Currently, five key metrics are sent to New Relic: average number of requests, request execution time, success rate of requests, active subscriptions, and number of websockets open. Additional metrics will be added in the future.
Apr 02, 2021
237 words in the original blog post.
Cascading permissions with inherited roles in Hasura allows users to define roles in a descriptive way that can be combined across multiple users. This feature enables the creation of roles such as standard user, editor, admin, and super-user by inheriting abilities from existing roles. Inheritance is facilitated through authorization groups where roles are defined with specific permissions for different classes or objects. Multiple roles can inherit from a single role, allowing for efficient management of access rights in enterprise systems. Hasura's console, CLI, and API support role inheritance definitions, making it easy to define well-architected roles.
Apr 01, 2021
273 words in the original blog post.