# STEP 01 – Wire project dependencies and environment for swissoid-back Updated `biblio-stats-graphql` to depend on `swissoid-back` and its runtime requirements (express-knifey, ioredis, redis) while aligning Express to v4 for compatibility. Also documented the new SwissOID and Redis environment variables the service must expose. ```diff --- a/package.json +++ b/package.json @@ - "express": "^5.1.0", - "ghooks": "^2.0.4", - "graphql-knifey": "^7.1.2", - "jose": "^6.1.0", - "mysql-oh-wait-utils": "^0.5.1", - "saylo": "0.6.3", - "swiss-army-knifey": "^1.36.4", - "typescript": "5.9.2", - "uuid": "^13.0.0" + "express": "^4.21.2", + "express-knifey": "^1.1.2", + "ghooks": "^2.0.4", + "graphql-knifey": "^7.1.2", + "ioredis": "^5.7.0", + "mysql-oh-wait-utils": "^0.5.1", + "redis": "^5.8.2", + "saylo": "0.6.3", + "swiss-army-knifey": "^1.36.4", + "swissoid-back": "^2.2.1", + "typescript": "5.9.2", + "uuid": "^13.0.0" ``` ```diff --- a/.env +++ b/.env @@ -# SwissOID Configuration -SWISSOID_CLIENT_ID=biblio-stats -SWISSOID_ISSUER=https://api.swissoid.com -SWISSOID_JWKS_URI=https://api.swissoid.com/.well-known/jwks.json -ACCESS_TOKEN_COOKIE=swissoid_access_token -REFRESH_TOKEN_COOKIE=swissoid_refresh_token -COOKIE_DOMAIN=.biblio-stats.meow.ch +# SwissOID Configuration for swissoid-back +SWISSOID_CLIENT_ID=biblio-stats +SWISSOID_ISSUER=https://api.swissoid.com +SWISSOID_JWKS_URI=https://api.swissoid.com/.well-known/jwks.json +SWISSOID_TOKEN_ENDPOINT=https://api.swissoid.com/token +SWISSOID_AUTHORIZE_ENDPOINT=https://api.swissoid.com/authorize + +# Relying party (this service) OIDC + session configuration +OIDC_REDIRECT_BASE_URL=http://localhost:3666 +RP_FRONTEND_URL=http://localhost:5173 +RP_COOKIE_DOMAIN=.biblio-stats.meow.ch +SESSION_COOKIE_NAME=biblio_stats_session +REFRESH_COOKIE_NAME=biblio_stats_refresh +SESSION_SECRET=dev-super-secret-change-me +STATE_SIGNING_SECRET=dev-super-secret-change-me-state +SESSION_TTL=7200 +REFRESH_TTL=604800 + +# Redis connection for session storage +REDIS_URL=redis://localhost:6379 ``` ```diff --- a/.env.prod +++ b/.env.prod @@ -# SwissOID Configuration -SWISSOID_CLIENT_ID=biblio-stats -SWISSOID_ISSUER=https://api.swissoid.com -SWISSOID_JWKS_URI=https://api.swissoid.com/.well-known/jwks.json -ACCESS_TOKEN_COOKIE=swissoid_access_token -REFRESH_TOKEN_COOKIE=swissoid_refresh_token -COOKIE_DOMAIN=.biblio-stats.meow.ch +# SwissOID Configuration for swissoid-back +SWISSOID_CLIENT_ID=biblio-stats +SWISSOID_ISSUER=https://api.swissoid.com +SWISSOID_JWKS_URI=https://api.swissoid.com/.well-known/jwks.json +SWISSOID_TOKEN_ENDPOINT=https://api.swissoid.com/token +SWISSOID_AUTHORIZE_ENDPOINT=https://api.swissoid.com/authorize + +# Relying party (this service) OIDC + session configuration +OIDC_REDIRECT_BASE_URL=https://graphql.biblio-stats.meow.ch +RP_FRONTEND_URL=https://biblio-stats.meow.ch +RP_COOKIE_DOMAIN=.biblio-stats.meow.ch +SESSION_COOKIE_NAME=biblio_stats_session +REFRESH_COOKIE_NAME=biblio_stats_refresh +SESSION_SECRET=prod-super-secret-change-me +STATE_SIGNING_SECRET=prod-super-secret-change-me-state +SESSION_TTL=7200 +REFRESH_TTL=604800 + +# Redis connection for session storage +REDIS_URL=redis://redis:6379 ```