Sign inSign up

naratechcoid/auth-api

By naratechcoid

•Updated about 2 years ago

An authentication API for Hasura GraphQL Engine.

Image
Security
Developer tools
1

348

naratechcoid/auth-api repository overview

This an authentication service for Hasura GraphQL Engine, in the form of pure HTTP API. There's no login UI, etc.
Learn more⁠.

For a sneak peek of what we're doing, we use it in a docker-compose.yaml file like this:

services:
  postgres:
    image: postgres:16.4
    restart: always
    ports:
      - ${POSTGRES_HOSTPORT}:5432
    volumes:
      - type: volume
        source: pg_data
        target: /var/lib/postgresql/data
      - type: bind
        source: ./docker/scripts/init-opr-db.sh
        target: /docker-entrypoint-initdb.d/init-opr-db.sh
        read_only: true
    env_file: ./docker/cfg/postgres.cfg
  graphql-engine:
    image: hasura/graphql-engine:v2.42.0
    depends_on:
      data-connector-agent:
        condition: service_healthy
    restart: always
    ports:
      - ${HASURA_ENGINE_HOSTPORT}:8080
    env_file: ./docker/cfg/graphql-engine.cfg
  data-connector-agent:
    image: hasura/graphql-data-connector:v2.42.0
    restart: always
    ports:
      - ${HASURA_CONNECTOR_HOSTPORT}:8081
    environment:
      QUARKUS_LOG_LEVEL: ERROR # FATAL, ERROR, WARN, INFO, DEBUG, TRACE
      ## https://quarkus.io/guides/opentelemetry#configuration-reference
      QUARKUS_OPENTELEMETRY_ENABLED: "false"
      ## QUARKUS_OPENTELEMETRY_TRACER_EXPORTER_OTLP_ENDPOINT: http://jaeger:4317
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8081/api/v1/athena/health"]
      interval: 5s
      timeout: 10s
      retries: 5
      start_period: 5s
  minio:
    image: bitnami/minio:2024.7.29
    restart: always
    ports:
      - ${MINIO_SERVER_HOSTPORT}:9000
      - ${MINIO_CONSOLE_HOSTPORT}:9001
    volumes:
      - type: volume
        source: min_data
        target: /bitnami/minio/data
      - type: volume
        source: min_certs
        target: /certs
    env_file: ./docker/cfg/minio.cfg
  opr-bucket:
    image: bitnami/minio-client:2024.7.26
    depends_on:
      - minio
    volumes:
      - type: bind
        source: ./docker/scripts/init-opr-bucket.sh
        target: /tmp/init-opr-bucket.sh
        read_only: true
      - type: bind
        source: ./docker/cfg/opr-bucket-policy.json
        target: /tmp/opr-bucket-policy.json
        read_only: true
    env_file: ./docker/cfg/opr-bucket.cfg
    entrypoint: /tmp/init-opr-bucket.sh
  auth-api:
    image: naratechcoid/auth-api:v0.3.2
    depends_on:
      - graphql-engine
    restart: always
    ports:
      - ${AUTH_API_HOSTPORT}:3000
    volumes:
      - type: volume
        source: auth_secrets
        target: ${AUTH_API_SECRETS_DIR}
    env_file:
      - path: .env
        required: false
      - path: ./docker/cfg/auth-api.cfg
volumes:
  pg_data:
  min_data:
  min_certs:
  auth_secrets:

If we get a lot of demand, maybe we can share more details in the future, or even open-source it.

Tag summary

Content type

Image

Digest

sha256:b7caab7b3…

Size

8.8 MB

Last updated

about 2 years ago

docker pull naratechcoid/auth-api:v0.3.2