DEV Community

Hasura for Hasura

Posted on • Originally published at blog.hasura.io on

Introducing Hasura Pro

An enterprise ready version of the Hasura GraphQL Engine that offers improved reliability and security controls and enterprise-grade SLAs for your Hasura deployment

We launched the Hasura GraphQL Engine as an open source project in July 2018. Since then, it has seen widespread adoption across some of the world’s most exciting organizations, from fast growing startups such as Matternet, Cherre and Credimi, to Fortune 500 enterprises such as Jeppesen (a Boeing Company) and BBVA, to even nonprofits (ProPublica Illinois) and government departments (US Department of the Interior). The Hasura GraphQL Engine currently sits at over 14,000 stars on Github, and was one of the fastest growing projects of 2019 as per the 2019 JavaScript Rising Starsreport.

Hasura based architectures have helped enterprises set up a modern data access layer for their new or existing digital transformation initiatives, and have saved hours of developer time. According to one of our users running Hasura in production, a Principal Architect at a Fortune 500 Healthcare Organization,

“Hasura has helped reduce app development time from months and years to just weeks.”

At Hasura, we have been working closely with our users from the very beginning on the product roadmap, via our Discord community and via support engagements with our larger enterprise customers. We heard a common refrain, particularly among our enterprise users - they wished that more advanced security and reliability features came out of the box. Their IT and Ops teams mandated certain requirements for them to run Hasura in Production so that they would not have to set it up and maintain themselves. Hasura Pro came out of these discussions.

Tweet annoucing Hasura Pro

What is Hasura Pro?

Hasura Pro is an enterprise-ready version of Hasura that offers advanced reliability and security features out of the box for your Hasura deployment. Hasura Pro is available under a commercial license, and is bundled with enterprise-grade SLAs and guarantees.

Here’s a look at what you get out of the box with Hasura Pro:

Monitoring & Analytics : Hasura Pro includes advanced monitoring and analytics capabilities to provide complete observability into your GraphQL stack. Hasura Pro analytics also integrate with external logging and APM tools, and provide API access to Hasura generated metrics.

Combined with the Analyze feature that the Hasura GraphQL Engine already comes with, Hasura Pro can help you find and fix slow queries by adding the correct indices.

Finding and fixing slow queries with Hasura Pro

Hasura Pro also reports errors as and when they occur. You can then inspect the query to get more details on the error, and how to fix them.

Realtime Error Reporting with Hasura Pro

All Hasura Pro generated metrics are available via an API, and are ready for integration with your favorite logging and APM tools - be it Datadog, Prometheus or Stackdriver. We also provide several APM integrations out of the box.

Rate Limiting : Hasura Pro lets you enforce session based rate limits to prevent abuse / DoS attacks on your GraphQL API.

Rate-limiting with session-based controls with Hasura Pro

Because the configuration is user identity and session aware, Hasura Pro also lets you manage Quality of Service at the user level. Rate limits can be set at a global level or at a role level, and can be enforced based on the number of requests per minute/hour or query depth.

Regression testing : Sometimes when you make schema or configuration changes, you can accidentally break your API. Hasura Pro lets you create regression test suites consisting of operations on your production traffic. Everytime you make a change on dev/staging, you can then run the test suite to see if your latest updates cause or would have caused breaking changes on production.

Creating a regression suite with Hasura Pro

Allow-listing : Your GraphQL API could be subject to scraping and abuse by unwanted agents. To prevent this, the Hasura GraphQL Engine comes with an allow-listing feature so that you can allow only the GraphQL operations used by your app. Hasura Pro improves on the allow-listing workflow so that you can automatically creating allow-lists based on your production traffic, and providing simple workflows to manage your allow-lists across environments.

Creating allow-lists to prevent unauthorized queries with Hasura Pro

Hasura Pro also includes a warn mode where it will log unknown operations in production without preventing their execution.

Team management and Collaboration : We have seen that the Hasura console serves as a collaboration hub for teams using Hasura. Hasura Pro further improves this workflow by providing you the ability to create member specific logins with granular privileges, such as running GraphQL queries, viewing metrics, viewing data/only part of the data, etc.

Setting up granular permissions for your Hasura Console with Hasura Pro

SSO integrations for team management are also available on request.

Deployment and support options: Hasura Pro processing can either be done via a central server (all logs and metadata are sent to a central server for processing), or the processing can be performed on your own infrastructure.

Hasura Pro also comes with a variety of support options - enterprise grade SLAs (upto 15 minutes), priority development support and a dedicated account manager.


Getting Started

Hasura Pro is already being used in production across our enterprise users, and is battle-tested.

Hasura Pro has been co-created with our users, and that will continue to be the case - if you are a Hasura Pro customer, your feedback will make it into the short/medium term product roadmap.

If you are interested in using Hasura Pro, setup a chat with us!

PS: We have several new features coming up on this front, as well as self-serve workflows. Watch this space!


Enjoyed this article? Join us on Discord for more discussions on Hasura & GraphQL! --> discord.gg/hasura

Sign up for our newsletter to know when we publish new articles. --> http://eepurl.com/dBUfJ5

Latest comments (0)