Skip to content

Instantly share code, notes, and snippets.

@dsandip
dsandip / allow-list.graphql
Last active January 18, 2025 19:16
Sample file with queries and mutations that can be used to populate an allow-list
# will be ignored by the allow-list
type Starship {
id: ID!
name: String!
length(unit: LengthUnit = METER): Float
}
# will be ignored by the allow-list
scalar parsec

Steps

You are supergraph admin.

Create and set the project

ddn project create

Use the project name for the created project

@dsandip
dsandip / YugaByte_HAProxy_hasura.md
Created February 26, 2024 16:54
HA Proxy configuration for YugaByte

YugaByte provide's a smartdriver to help load balance across distributed nodes (amongst other things). In cases where this driver can't be used, one can use a proxy to achieve the same. The following are instructions to use HAProxy to do this:

  1. Use HAProxy with the following config (while changing/tuning the YB parameters as needed):

Step 1: Create a Hasura Account

Head to https://cloud.hasura.io and sign-up for an account if you don't already have one. This account will be used to administer all the Hasura instances that you own. If you already have a Hasura Cloud, please ensure that you can see the New Self-Hosted Project option in the Cloud dashboard:

self-hosted-project-option

If you don't see this option, please contact Hasura support to enable it for your Cloud account.

Step 2: Register a self-hosted project

Slack permissions model based authorization task

  1. Create a Postgres schema that models a Slack-like app's DB requirements:

    a) There are channels and users(3 user roles: users, moderators, admins).

    b) Users can access a subset of all channels, and create messages in each/any of these accessible channels. They can also modify(edit/delete) their own messages. Any user who belongs to a channel can read all messages in that channel.

    c) Moderators can access a subset of all channels and can access/edit/delete any messages in these channels.

@dsandip
dsandip / migrate_images_to_private_registry.sh
Created May 6, 2022 15:26
Bash script to push Hasura E.E control plane images to a private registry
#!/bin/bash
json_key=$(<example.json) # JSON access key
internal_repo='localhost:8000' # URL to private container registry
docker login -u _json_key --password "$json_key" https://gcr.io # log into GCR
image_list=(`helm template lux-2.0.8.tgz | grep "image:"`) # get raw list of images from Helm charts
ignore_value="image:" # value to parse downstream
names=$(printf "'%s'\n" "${image_list[@]/$ignore_value}" | grep -v "''" | tr -d \'\" | tr -d "\r" | sort -u | uniq) # Assign output to variable via Bash command substitution
@dsandip
dsandip / override-values-private-registry.yaml
Last active May 5, 2022 08:26
sample override file for using a private container registry with Hasura E.E
# For more information on configuration options, refer to https://docs.pro.hasura.io/custom-installation/helm-configs/
global:
# Allowed values: http, https
uriScheme: "http"
# Set to the configured domain / Ingress' loadbalancerIP.nip.io
domain: "35.235.7.103.nip.io"
# Set to the k8s namespace the resources should be deployed to.The namespace should exist before applying the manifest
namespace: "default"
# Configure the container registry to be used; defaults to gcr.io/hasura-ee

Event Trigger issue

Details of the issue:

We have detected an error message similar to the following example, in some projects on Hasura Cloud:

“event trigger "foo_event_trigger" on table "foo" not found”

This happens when the event trigger definition no longer exists in the metadata but the associated Postgres trigger exists in the database which impacts the resource consumption in your project's database.

@dsandip
dsandip / Hasura-Pro-Redis-TLS-details.md
Created September 30, 2021 17:50
describes the recent updates in Hasura E.E data plane for Redis TLS support

Redis TLS configuration

Hasura supports using TLS to connect securely to Redis instances (which it can use for rate limiting and caching).

TLS connection information can be specified via the following environment variables:

  • HASURA_GRAPHQL_REDIS_USE_TLS: Opt-in flag that enables the use of TLS for the caching Redis instance, defaults to false.
  • HASURA_GRAPHQL_RATE_LIMIT_REDIS_USE_TLS: Opt-in flag that enables the use of TLS for the rate-limiting Redis instance, defaults to false.