Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fatal Error in HASURA_GRAPHQL_JWT_SECRET Parsing #241

Open
TimaxLacs opened this issue Jun 9, 2024 · 0 comments
Open

Fatal Error in HASURA_GRAPHQL_JWT_SECRET Parsing #241

TimaxLacs opened this issue Jun 9, 2024 · 0 comments

Comments

@TimaxLacs
Copy link
Contributor

Issue Title: HASURA_GRAPHQL_JWT_SECRET Variable Parsing Error During Deep Setup

Description:
During the setup of a Deep instance on a server, the HASURA_GRAPHQL_JWT_SECRET environmental variable causes a fatal error, preventing the Hasura container from starting up correctly. The error indicates that the JWT_SECRET variable is not recognized as valid JSON.

Steps to Reproduce:

  1. Set up a server environment (Ubuntu).

  2. Install required packages and dependencies (Docker, NVM, Node.js):

    sudo apt update
    sudo apt install -y git curl docker.io docker-compose
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    nvm install 18 && nvm alias default 18 && nvm use default
    npm i -g npm@latest
  3. Generate the JWT_SECRET value:

    export JWT_SECRET=$(node -e "console.log(JSON.stringify({type: 'HS256', key: require('crypto').randomBytes(50).toString('base64')}))")
  4. Update the call-options.json to include the JWT_SECRET:

    {
      "operation": "run",
      "envs": {
        "DEEPLINKS_PUBLIC_URL": "http://your.deeplinks.host",
        "NEXT_PUBLIC_DEEPLINKS_URL": "http://your.deeplinks.host",
        "NEXT_PUBLIC_GQL_PATH": "your.deeplinks.host/gql",
        "NEXT_PUBLIC_GQL_SSL": "0",
        "NEXT_PUBLIC_DEEPLINKS_SERVER": "http://your.deepcase.host",
        "NEXT_PUBLIC_ENGINES_ROUTE": "0",
        "NEXT_PUBLIC_DISABLE_CONNECTOR": "1",
        "JWT_SECRET": "'{\"type\":\"HS256\",\"key\":\"<generated_key>\"}'",
        "DEEPLINKS_HASURA_STORAGE_URL": "http://host.docker.internal:8000/",
        "HASURA_GRAPHQL_ADMIN_SECRET": "<your_admin_secret>",
        "MIGRATIONS_HASURA_SECRET": "<your_admin_secret>",
        "DEEPLINKS_HASURA_SECRET": "<your_admin_secret>",
        "POSTGRES_PASSWORD": "<your_postgres_password>",
        "HASURA_GRAPHQL_DATABASE_URL": "postgres://postgres:<your_postgres_password>@postgres:5432/postgres",
        "POSTGRES_MIGRATIONS_SOURCE": "postgres://postgres:<your_postgres_password>@host.docker.internal:5432/postgres?sslmode=disable",
        "RESTORE_VOLUME_FROM_SNAPSHOT": "0",
        "MANUAL_MIGRATIONS": "1",
        "MINIO_ROOT_USER": "<your_minio_access_key>",
        "MINIO_ROOT_PASSWORD": "<your_minio_secret_key>",
        "S3_ACCESS_KEY": "<your_minio_access_key>",
        "S3_SECRET_KEY": "<your_minio_secret_key>"
      }
    }
  5. Follow the remaining steps to set up and start the Deep instance.

Expected Result:
The Deep instance should start correctly, with all containers running and able to process requests.

Actual Result:
The deep-hasura container fails to start, citing JSON formatting errors for the HASURA_GRAPHQL_JWT_SECRET variable.

Error Logs:

docker logs deep-hasura
Fatal Error:- Environment variable HASURA_GRAPHQL_JWT_SECRET: Error in $: Failed reading: not a valid json value

Environment:

  • OS: Ubuntu 20.04
  • Node.js version: 18.19.0
  • Docker version: 20.10.7
  • NVM version: v0.39.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant