diff --git a/apps/edr-passenger-api/.env.example b/apps/edr-passenger-api/.env.example index a4774af84..328023c28 100644 --- a/apps/edr-passenger-api/.env.example +++ b/apps/edr-passenger-api/.env.example @@ -3,6 +3,7 @@ NODE_ENV=development PORT=4000 # Database (Prisma) — owns the `passenger` schema in edr_database +# Production: append ?sslmode=require&connection_limit=10&pool_timeout=20 to enforce SSL and connection pooling DATABASE_URL=postgresql://edr:edr_secret@localhost:5432/edr_database?schema=passenger # Database (TypeORM / @tria-plc IAM) — shared `iam` schema in the SAME edr_database. @@ -32,14 +33,14 @@ FRONTEND_URL=http://localhost:5174 BACK_OFFICE_URL=http://localhost:5184 # JWT (legacy passenger auth — being replaced by IAM) -JWT_SECRET=edr-platform-secret-change-in-production +# REQUIRED in production — use a random 32+ character string (e.g. openssl rand -hex 32) +JWT_SECRET= JWT_EXPIRES_IN=7d -# @tria-plc IAM token contract — the package's JwtGuard/verifyToken + AuthService sign/verify with -# these. MUST match the IAM issuer's secret in shared deployments. (Expiry strings use jsonwebtoken/ms.) -JWT_ACCESS_TOKEN_SECRET=dev-iam-access-secret-change-me +# @tria-plc IAM token contract — REQUIRED in production. MUST match the IAM issuer's secret. +JWT_ACCESS_TOKEN_SECRET= JWT_ACCESS_TOKEN_EXPIRES=1h -JWT_REFRESH_TOKEN_SECRET=dev-iam-refresh-secret-change-me +JWT_REFRESH_TOKEN_SECRET= JWT_REFRESH_TOKEN_EXPIRES=7d # SendGrid @@ -157,7 +158,7 @@ FAYDA_ACR_VALUES=mosip:idp:acr:generated-code FAYDA_CLAIMS_LOCALES=en am FAYDA_SESSION_TTL_MINUTES=10 -GITHUB_PACKAGE_TOKEN= +GITHUB_PACKAGE_TOKEN= # --- Notification broker (RabbitMQ) ----------------------------------------------------------------- # Set RABBITMQ_ENABLED=false to skip connection entirely (dev without a local broker). diff --git a/apps/edr-passenger-api/src/modules/notifications/sms-client.service.ts b/apps/edr-passenger-api/src/modules/notifications/sms-client.service.ts index 04188842d..a2bbbad99 100644 --- a/apps/edr-passenger-api/src/modules/notifications/sms-client.service.ts +++ b/apps/edr-passenger-api/src/modules/notifications/sms-client.service.ts @@ -26,7 +26,7 @@ export class SmsClientService implements OnApplicationBootstrap { this.logger.log("connected to SMS service"); }) .catch((err) => { - console.error("Error happened at SMS service", err); + this.logger.error('Error happened at SMS service', err); }); } diff --git a/apps/edr-passenger-api/src/modules/segments/trip-progress.service.ts b/apps/edr-passenger-api/src/modules/segments/trip-progress.service.ts index f67808385..57b5a10cf 100644 --- a/apps/edr-passenger-api/src/modules/segments/trip-progress.service.ts +++ b/apps/edr-passenger-api/src/modules/segments/trip-progress.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import { PrismaService } from '../../common/prisma.service'; import { EnhancedSeatsService } from './enhanced-seats.service'; import { EventEmitter2, OnEvent } from '@nestjs/event-emitter'; @@ -6,6 +6,7 @@ import { Cron, CronExpression } from '@nestjs/schedule'; @Injectable() export class TripProgressService { + private readonly logger = new Logger(TripProgressService.name); constructor( private prisma: PrismaService, private enhancedSeatsService: EnhancedSeatsService, @@ -154,10 +155,10 @@ export class TripProgressService { try { const result = await this.enhancedSeatsService.expireHolds(); if (result.expiredHolds > 0) { - console.log(`Expired ${result.expiredHolds} holds, released ${result.releasedSeats.length} seats`); + this.logger.log(`Expired ${result.expiredHolds} holds, released ${result.releasedSeats.length} seats`); } } catch (error) { - console.error('Error expiring holds:', error); + this.logger.error('Error expiring holds:', error); } } diff --git a/apps/edr-passenger-web/backoffice/.env.example b/apps/edr-passenger-web/backoffice/.env.example index 5263b3a36..058069154 100644 --- a/apps/edr-passenger-web/backoffice/.env.example +++ b/apps/edr-passenger-web/backoffice/.env.example @@ -5,5 +5,5 @@ NEXT_PUBLIC_API_URL=https://your-api-domain.com NEXT_PUBLIC_IAM_ENABLED=false NEXT_PUBLIC_IAM_API_URL=https://iam.tria-plc.com/api -# GitHub Packages Token -GITHUB_PACKAGE_TOKEN=$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 +# GitHub Packages Token (required to install @tria-plc/* private packages) +GITHUB_PACKAGE_TOKEN= diff --git a/apps/edr-passenger-web/backoffice/src/app/settings/page.tsx b/apps/edr-passenger-web/backoffice/src/app/settings/page.tsx index 82e9a00d5..16f262b8e 100644 --- a/apps/edr-passenger-web/backoffice/src/app/settings/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/settings/page.tsx @@ -53,8 +53,6 @@ export default function SettingsPage() { const tabs: { id: Tab; label: string }[] = [ { id: 'general', label: 'General' }, - { id: 'payment', label: 'Payment' }, - { id: 'integrations', label: 'Integrations' }, { id: 'configurations', label: 'Configurations' }, ]; @@ -109,81 +107,7 @@ export default function SettingsPage() { )} - - {activeTab === 'payment' && ( -
-
-

Payment Providers

-
-
-
-

Telebirr

-

Mobile payment provider

-
- -
-
-
-

CBE Birr

-

Bank payment provider

-
- -
-
-
-
- )} - - {activeTab === 'integrations' && ( -
-
-

Verifayda 2.0 Integration

-
-
- - -
-
- - -
-
- - -
-
-
- -
-

Corporate IAM Integration

-
-
- - -
-
- - -
-
- - -
-
-
-
- )} - + {activeTab === 'configurations' && (

Rate Limiting (requests / minute / IP)

diff --git a/apps/edr-passenger-web/portal/.env.example b/apps/edr-passenger-web/portal/.env.example index 25ffe6909..295fbe775 100644 --- a/apps/edr-passenger-web/portal/.env.example +++ b/apps/edr-passenger-web/portal/.env.example @@ -1,5 +1,5 @@ # API Configuration NEXT_PUBLIC_API_URL=https://your-api-domain.com -# GitHub Packages Token -GITHUB_PACKAGE_TOKEN=$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 \ No newline at end of file +# GitHub Packages Token (required to install @tria-plc/* private packages) +GITHUB_PACKAGE_TOKEN= \ No newline at end of file