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

Error: secret option required for sessions when running dbspy service #126

Open
1 task
vialcollet opened this issue May 30, 2024 · 1 comment
Open
1 task
Labels
bug Something isn't working

Comments

@vialcollet
Copy link

vialcollet commented May 30, 2024

Description

I've encountered an issue when trying to upload an SQL file to the dbspy service. The following error appears in the logs:

[09:53:35.000] INFO: Securely Running at 3000
dbspy-dbspy-1     | Error: secret option required for sessions
dbspy-dbspy-1     |     at session (/usr/src/app/node_modules/express-session/index.js:200:12)
dbspy-dbspy-1     |     at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
dbspy-dbspy-1     |     at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:328:13)
dbspy-dbspy-1     |     at /usr/src/app/node_modules/express/lib/router/index.js:286:9
dbspy-dbspy-1     |     at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)
dbspy-dbspy-1     |     at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)
dbspy-dbspy-1     |     at SendStream.error (/usr/src/app/node_modules/serve-static/index.js:121:7)
dbspy-dbspy-1     |     at SendStream.emit (node:events:520:28)
dbspy-dbspy-1     |     at SendStream.emit (node:domain:488:12)
dbspy-dbspy-1     |     at SendStream.error (/usr/src/app/node_modules/send/index.js:270:17)

Reproduction

Steps to Reproduce:

  1. Pull the latest code from the repository.
  2. Build the Docker image using the provided Dockerfile that I adjusted as shown below
  3. Start the Docker container using docker-compose provided below.
  4. Try to upload an SQL file to the dbspy service.

Expected Behavior:
The SQL file should be uploaded successfully without any errors.

Actual Behavior:
The service logs an error indicating that the secret option is required for session management.

System information

System:

  • OS: Linux 6.2 Debian GNU/Linux 12 (bookworm) 12 (bookworm)
  • CPU: (2) x64 Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
  • Memory: 926.69 MB / 3.76 GB
  • Container: Yes
  • Shell: 5.2.15 - /bin/bash

Binaries:

  • Node: 22.2.0 - /usr/local/bin/node
  • Yarn: 1.22.19 - /usr/local/bin/yarn
  • npm: 10.7.0 - /usr/local/bin/npm

Additional information

Below is the current Dockerfile and docker-compose.yml used:

Dockerfile:

FROM node:latest

WORKDIR /usr/src/app

RUN apt-get update && apt-get install -y libnss3-tools wget && \
    wget https://dl.filippo.io/mkcert/latest?for=linux/amd64 -O /usr/local/bin/mkcert && \
    chmod +x /usr/local/bin/mkcert && \
    mkcert -install

COPY . /usr/src/app

RUN npm ci && npm cache clean --force && npm run build 
RUN npm run cert:linux

EXPOSE 3000

ENTRYPOINT ["npm", "run", "start"]

docker-compose.yml:

version: "3.8"

services:
  dbspy:
    build: .
    depends_on:
      - dbspy_db
    restart: unless-stopped
    networks:
      - backend
      - webproxy

  dbspy_db:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${ROOT_PWD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${USER_DB_USER}
      MYSQL_PASSWORD: ${USER_DB_PW}
    networks:
      - backend
    restart: unless-stopped
    volumes:
      - data:/var/lib/mysql

networks: 
  webproxy:
    name: webproxy
    external: true
  backend:

volumes:  
  data:

.env file

# production environment variables
USER_DB_URL = dbspy_db
USER_DB_USER = dbspy
USER_DB_PW = xxxxxxxxxxxxxxxxx
TOKEN_KEY = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ROOT_PWD = xxxxxxxxxxxxxxxxxxxx
MYSQL_DATABASE = test
# testing environment variables
## encoded SSL data required for GitHub Actions
SSL_KEY = <base64 encoded SSL key (see SSL Configuration)>
SSL_CERT = <base64 encoded SSL cert>
## MySQL and Postgres databases to test remote connection functionality
MYSQL_TEST_URL = <MySQL url for a test database>
MYSQL_TEST_USERNAME = <user string from MYSQL_TEST_URL>
MYSQL_TEST_PW = <password string from MYSQL_TEST_URL>
PG_TEST_URL = <PostgreSQL url for a test database>
PG_TEST_USERNAME = <user string from PG_TEST_URL>
PG_TEST_PW = <password string from PG_TEST_URL>
## test user with saved schema to test save/load functionality
TEST_USER_EMAIL = <email string>
TEST_USER_PW = <password string>

GOOGLE_OAUTH_CLIENT_ID = <Google Oauth client id>
GOOGLE_OAUTH_CLIENT_SECRET= <Google Oauth client id>
GOOGLE_OAUTH_REDIRECT_URI = 'http://localhost:8080/display'

GITHUB_OAUTH_CLIENT_ID = <Github Oauth client id>
GITHUB_OAUTH_CLIENT_SECRET= <Github Oauth client id>
GITHUB_OAUTH_REDIRECT_URI = 'http://localhost:8080/display'

👨‍👧‍👦 Contributing

  • 🙋‍♂️ Yes, I'd love to make a PR to fix this bug!
@vialcollet vialcollet added the bug Something isn't working label May 30, 2024
@vialcollet
Copy link
Author

Hi.
Any feedback on this ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant