You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.2 KiB
3.2 KiB
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.
--- 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"
--- 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
--- 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