diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..f99697fa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# --- Stage 1: Build the application using Maven --- +FROM maven:3.9.6-eclipse-temurin-17 AS build + +WORKDIR /app + +COPY . . + +# Build the application while caching Maven dependencies to speed up future builds +RUN --mount=type=cache,target=/root/.m2 \ + mvn clean package -DENV_VAR=docker -DskipTests -Dgit.skip=true + +# --- Stage 2: Run the application with a minimal JRE image --- +FROM eclipse-temurin:17-jre + +WORKDIR /app + +# Copy the built WAR file from the build stage +COPY --from=build /app/target/*.war app.war + +EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "app.war"] diff --git a/pom.xml b/pom.xml index 31c97308..d4749c5a 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,10 @@ org.springframework.boot spring-boot-starter + + org.springframework.boot + spring-boot-starter-logging + org.springframework spring-core @@ -503,11 +507,6 @@ org.apache.maven.plugins maven-jar-plugin - - - org.springframework.boot - spring-boot-maven-plugin - org.apache.maven.plugins maven-compiler-plugin @@ -654,6 +653,18 @@ + + org.springframework.boot + spring-boot-maven-plugin + 3.2.2 + + + + repackage + + + + diff --git a/src/main/environment/common_ci.properties b/src/main/environment/common_ci.properties index 8b78113f..714c82a8 100644 --- a/src/main/environment/common_ci.properties +++ b/src/main/environment/common_ci.properties @@ -61,12 +61,11 @@ cron-scheduler-ctidatacheck=0 10 00 * * * ### generate Beneficiary Config genben-api= @env.BEN_GEN_API_URL@ -### file Base Path ---------------------------- +### file Base Path --------------------------- fileBasePath =@env.MMU_FILE_BASE_PATH@ ### Redis IP -spring.redis.host=localhost +spring.redis.host=@env.REDIS_HOST@ ##--------------------------------------------------------------------------------------------------------------- ###CTI data sync schedular @@ -168,7 +167,7 @@ springdoc.api-docs.enabled=false springdoc.swagger-ui.enabled=false -isProduction=false +isProduction=true grievanceAllocationRetryConfiguration=3 start-grievancedatasync-scheduler=false @@ -178,7 +177,10 @@ captcha.secret-key=@env.CAPTCHA_SECRET_KEY@ captcha.verify-url=@env.CAPTCHA_VERIFY_URL@ captcha.enable-captcha=@env.ENABLE_CAPTCHA@ +<<<<<<< HEAD +======= cors.allowed-origins=@env.CORS_ALLOWED_ORIGINS@ +>>>>>>> develop diff --git a/src/main/environment/common_docker.properties b/src/main/environment/common_docker.properties new file mode 100644 index 00000000..e8db9037 --- /dev/null +++ b/src/main/environment/common_docker.properties @@ -0,0 +1,181 @@ +# local env +# DB Connections +spring.datasource.url=${DATABASE_URL} +spring.datasource.username=${DATABASE_USERNAME} +spring.datasource.password=${DATABASE_PASSWORD} +spring.datasource.driver-class-name=com.mysql.jdbc.Driver + +secondary.datasource.username=${REPORTING_DATABASE_USERNAME} +secondary.datasource.password=${REPORTING_DATABASE_PASSWORD} +secondary.datasource.url=${REPORTING_DATABASE_URL} +secondary.datasource.driver-class-name=com.mysql.jdbc.Driver + +## KM Configuration +km-base-protocol=${KM_API_BASE_PROTOCOL} +km-username=${KM_USERNAME} +km-password=${KM_PASSWORD} +km-base-url=${KM_API_BASE_URL} +km-base-path=${KM_API_BASE_PATH} +km-root-path=/okm:personal/users/ +km-guest-user=${KM_GUEST_USER} +km-guest-password=${KM_GUEST_PASSWORD} + +# CTI Config +cti-server-ip=${CTI_SERVER_IP} +cti-logger_base_url=${CTI_SERVER_LOGGER_BASE}/logger + +# Identity Config +identity-api-url = ${IDENTITY_API_URL} +identity-1097-api-url = ${IDENTITY_1097_API_URL} + +#### SMS Configuration +send-sms=${SEND_SMS} +sendSMSUrl = ${SEND_SMS_URL} +source-address=${SMS_SOURCE_ADDRESS} +sms-username=${SMS_USERNAME} +sms-password=${SMS_PASSWORD} +send-message-url=${SMS_MESSAGE_URL} + +###SMS Scheduler configurations +start-sms-scheduler=true +cron-scheduler-sms=0 0/1 * * * ? * + +#### Email Configuration +send-email=${SEND_EMAIL} +spring.mail.host=${MAIL_HOST} +spring.mail.port=${MAIL_PORT} +spring.mail.username=${MAIL_USERNAME} +spring.mail.password=${MAIL_PASSWORD} +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true + +###Email Scheduler configurations +start-email-scheduler=true +cron-scheduler-email=0 0/1 * * * ? * + +###cti data check with call detail report Scheduler +#Runs at everyday 12:10AM +start-ctidatacheck-scheduler=true +cron-scheduler-ctidatacheck=0 10 00 * * * + +### generate Beneficiary Config +genben-api= ${BEN_GEN_API_URL} + +### file Base Path +--------------------------- +fileBasePath =${MMU_FILE_BASE_PATH} + +### Redis IP +spring.redis.host=${REDIS_HOST} + +##--------------------------------------------------------------------------------------------------------------- +###CTI data sync schedular +cz-duration=40 +##--------------------------------------------------------------------------------------------------------------- +## prescription template +TMprescriptionTemplate=TMPrescription +##--------------------------------------------------------------------------------------------------------------- +##duration for everwell calender +everwellCalendarDuration=15 + ##--------------------------------------------------------------------------------------------------------------- +##lonic variables +lonicPageSize=10 + ##--------------------------------------------------------------------------------------------------------------- +#snomedcti +snomedCTPageSize=10 +##--------------------------------------------------------------------------------------------------------------- +#call retry count +callRetryConfiguration=3 +##--------------------------------------------------------------------------------------------------------------- +#avni registration Duration +avniRegistrationLimit=7 + +#--------------------------NHM Agent Real Time Data---------------------------- +nhm.agent.real.time.data.url=${NHM_AGENT_REAL_TIME_DATA_URL} +nhm.agent.real.time.data.cron.scheduler=0 */2 * ? * * +nhm.agent.real.time.data.cron.flag=true + +##missing commits + +carestream_socket_ip = ${CARESTREAM_SOCKET_IP} +carestream_socket_port = ${CARESTREAM_SOCKET_PORT} + +## everwell variables +everwellUserName = ${EVERWELL_USERNAME} +everwellPassword = ${EVERWELL_PASSWORD} +amritUserName = ${EVERWELL_AMRIT_USERNAME} +amritPassword = ${EVERWELL_AMRIT_PASSWORD} + +## everwell API call +everwellAddSupportAction = ${EVERWELL_BASE_URL}/Api/Patients/AddSupportAction +everwellEditDoses = ${EVERWELL_BASE_URL}/Api/Patients/EditManualDoses +everwellEditMissedDoses = ${EVERWELL_BASE_URL}/Api/Patients/EditMissedDoses +everwellGetPatientAdherenceUrl = ${EVERWELL_BASE_URL}/Api/Patients/CurrentMonthMissedAdherence?Page= +everwellEditSecondaryPhoneNo = ${EVERWELL_BASE_URL}/Api/Patients/EditPhoneNumber +everwell1097userAuthenticate = ${COMMON_API_BASE_URL}user/userAuthenticate +everwelluserAuthenticate = ${EVERWELL_BASE_URL}/token +everwellRegisterBenficiary = ${COMMON_API_BASE_URL}/beneficiary/create + + +## LungAssessment credentials +lungAssessmentEmail = ${SWAASA_EMAIL} +lungAssessmentPassword =${SWAASA_PASSWORD} + + +## SWASSA APIs +lungAssessmentAdminLogin = ${SWAASA_BASE_URL}/api/adminLogin +lungAssessmentValidateCough = ${SWAASA_BASE_URL}/api/verifycough +lungAssessmentStartAssesment = ${SWAASA_BASE_URL}/api/assessment +lungAssessmentGetAssesment = ${SWAASA_BASE_URL}/api/getAssessment + +#E- Sanjeevani user authenticate creds +eSanjeevani.url: ${ESANJEEVANI_URL} +eSanjeevani.userName: ${ESANJEEVANI_USERNAME} +eSanjeevani.password: ${ESANJEEVANI_PASSWORD} +eSanjeevani.salt: ${ESANJEEVANI_SALT} +eSanjeevani.source: ${ESANJEEVANI_SOURCE} +eSanjeevani.registerPatient: ${ESANJEEVANI_REGISTER_PATIENT_URL} +eSanjeevani.routeUrl: ${ESANJEEVANI_ROUTE_URL} + +biometric.discover.url = ${BIOMETRIC_URL} +biometric.deviceInfo.url = ${BIOMETRIC_URL}/rd/info +biometric.capture.url = ${BIOMETRIC_URL}/rd/capture +eAusadhaUrl=${EAUSADHA_URL} + +eausadhaAuthorization=${EAUSADHA_AUTHORIZATION_KEY} +spring.main.allow-bean-definition-overriding=true +spring.main.allow-circular-references=true + +jwt.secret=${JWT_SECRET_KEY} + + +#ELK logging file name +logging.path=logs/ +logging.file.name=${COMMON_API_LOGGING_FILE_NAME} + + +##grievance API call +updateGrievanceDetails = ${GRIEVANCE_API_BASE_URL}/grsbepro/igemr1097/public/api/v1/state-wise/grievance-list?page=PageNumber¤tpage=1 +updateGrievanceTransactionDetails=${GRIEVANCE_API_BASE_URL}/grsbepro/igemr1097/public/api/v1/grievance_details/ +## grievance variables + +grievanceUserName = ${GRIEVANCE_USERNAME} +grievancePassword = ${GRIEVANCE_PASSWORD} +grievanceUserAuthenticate = ${GRIEVANCE_USER_AUTHENTICATE} +grievanceDataSyncDuration = ${GRIEVANCE_DATA_SYNC_DURATION} + +springdoc.api-docs.enabled=false +springdoc.swagger-ui.enabled=false + + +isProduction=true +grievanceAllocationRetryConfiguration=3 + +start-grievancedatasync-scheduler=false +cron-scheduler-grievancedatasync=0 0/2 * * * ? + +captcha.secret-key=${CAPTCHA_SECRET_KEY} +captcha.verify-url=${CAPTCHA_VERIFY_URL} +captcha.enable-captcha=${ENABLE_CAPTCHA} + +cors.allowed-origins=${CORS_ALLOWED_ORIGINS} \ No newline at end of file