diff --git a/apps/holder-backend/src/app/db/db.module.ts b/apps/holder-backend/src/app/db/db.module.ts index 51b01d2d..5aae80d8 100644 --- a/apps/holder-backend/src/app/db/db.module.ts +++ b/apps/holder-backend/src/app/db/db.module.ts @@ -5,7 +5,7 @@ import * as Joi from 'joi'; import { DatabaseType } from 'typeorm'; export const DB_VALIDATION_SCHEMA = { - DB_TYPE: Joi.string().default('postgres'), + DB_TYPE: Joi.string().valid('sqlite', 'postgres').default('postgres'), DB_HOST: Joi.string().when('DB_TYPE', { is: 'postgres', then: Joi.required(), diff --git a/apps/issuer-backend/package.json b/apps/issuer-backend/package.json index 26f029f8..ac26aef3 100644 --- a/apps/issuer-backend/package.json +++ b/apps/issuer-backend/package.json @@ -1,6 +1,7 @@ { "dependencies": { "sqlite3": "^5.1.7", + "pg": "^8.11.5", "@sphereon/pex": "^3.3.3", "@sphereon/oid4vci-issuer": "^0.12.0", "@sphereon/ssi-express-support": "0.26.0" diff --git a/apps/verifier-backend/package.json b/apps/verifier-backend/package.json index 40e8b840..dd824e0f 100644 --- a/apps/verifier-backend/package.json +++ b/apps/verifier-backend/package.json @@ -1,6 +1,8 @@ { "dependencies": { - "@sphereon/pex": "^3.3.3" + "@sphereon/pex": "^3.3.3", + "sqlite3": "^5.1.7", + "pg": "^8.11.5" }, "pnpm": { "patchedDependencies": { diff --git a/deploys/issuer/.env.example b/deploys/issuer/.env.example index cc9c9ede..5a408a3b 100644 --- a/deploys/issuer/.env.example +++ b/deploys/issuer/.env.example @@ -7,6 +7,9 @@ ISSUER_BASE_URL=http://localhost:3001 CREDENTIALS_FOLDER=templates KM_FOLDER=data +DB_TYPE=sqlite +DB_NAME=data/db.sqlite + # Frontend FRONTEND_OIDC_CLIENT_ID=relying-party FRONTEND_OIDC_CLIENT_SECRET=hA0mbfpKl8wdMrUxr2EjKtL5SGsKFW5D diff --git a/deploys/issuer/docker-compose.yml b/deploys/issuer/docker-compose.yml index fccb7e69..7bec15e4 100644 --- a/deploys/issuer/docker-compose.yml +++ b/deploys/issuer/docker-compose.yml @@ -5,12 +5,13 @@ services: - OIDC_AUTH_URL=$OIDC_AUTH_URL - OIDC_REALM=$OIDC_REALM - OIDC_CLIENT_ID=$OIDC_CLIENT_ID + - OIDC_CLIENT_SECRET=$OIDC_CLIENT_SECRET - VERIFIER_BASE_URL=$VERIFIER_BASE_URL - KM_FOLDER=$KM_FOLDER - ISSUER_BASE_URL=$ISSUER_BASE_URL - CREDENTIALS_FOLDER=$CREDENTIALS_FOLDER - - DB_TYPE=sqlite - - DB_NAME=data/db.sqlite + - DB_TYPE=$DB_TYPE + - DB_NAME=$DB_NAME volumes: - issuer:/home/node/app/data:rw - ./config/issuer-backend:/home/node/app/templates diff --git a/deploys/verifier/.env.example b/deploys/verifier/.env.example index eb04e3be..4b48524a 100644 --- a/deploys/verifier/.env.example +++ b/deploys/verifier/.env.example @@ -6,6 +6,9 @@ VERIFIER_BASE_URL=http://localhost:3002 CREDENTIALS_FOLDER=templates KM_FOLDER=data +DB_TYPE=sqlite +DB_NAME=data/db.sqlite + # Frontend FRONTEND_OIDC_CLIENT_ID=relying-party FRONTEND_OIDC_CLIENT_SECRET=hA0mbfpKl8wdMrUxr2EjKtL5SGsKFW5D diff --git a/deploys/verifier/docker-compose.yml b/deploys/verifier/docker-compose.yml index cd83295a..a1c948c3 100644 --- a/deploys/verifier/docker-compose.yml +++ b/deploys/verifier/docker-compose.yml @@ -10,9 +10,12 @@ services: - OIDC_AUTH_URL=$OIDC_AUTH_URL - OIDC_REALM=$OIDC_REALM - OIDC_CLIENT_ID=$OIDC_CLIENT_ID + - OIDC_CLIENT_SECRET=$OIDC_CLIENT_SECRET - VERIFIER_BASE_URL=$VERIFIER_BASE_URL - CREDENTIALS_FOLDER=$CREDENTIALS_FOLDER - KM_FOLDER=$KM_FOLDER + - DB_TYPE=$DB_TYPE + - DB_NAME=$DB_NAME healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:3000/health'] interval: 30s diff --git a/libs/relying-party-shared/src/lib/db/db.module.ts b/libs/relying-party-shared/src/lib/db/db.module.ts index 51b01d2d..1d178fb5 100644 --- a/libs/relying-party-shared/src/lib/db/db.module.ts +++ b/libs/relying-party-shared/src/lib/db/db.module.ts @@ -1,11 +1,11 @@ import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; -import { TypeOrmModule } from '@nestjs/typeorm'; +import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; import * as Joi from 'joi'; import { DatabaseType } from 'typeorm'; export const DB_VALIDATION_SCHEMA = { - DB_TYPE: Joi.string().default('postgres'), + DB_TYPE: Joi.string().valid('sqlite', 'postgres').default('sqlite'), DB_HOST: Joi.string().when('DB_TYPE', { is: 'postgres', then: Joi.required(), @@ -42,7 +42,7 @@ export const DB_VALIDATION_SCHEMA = { database: configService.get('DB_NAME'), synchronize: true, autoLoadEntities: true, - }; + } as TypeOrmModuleOptions; case 'postgres': return { type: 'postgres', @@ -53,7 +53,9 @@ export const DB_VALIDATION_SCHEMA = { database: configService.get('DB_NAME'), synchronize: true, autoLoadEntities: true, - }; + } as TypeOrmModuleOptions; + default: + throw new Error('Invalid DB_TYPE'); } }, }),