diff --git a/.gitignore b/.gitignore index 0d192a3..9b6479d 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ npm-debug.log *.sublime-workspace sync-backend.ps1 sync-frontend.ps1 +config/kafka_data diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3d8aae2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +#Dockerfile for TeamCity build "run in docker" + +FROM repo.asd.center.cg:8082/alt/alt-tomcat:c10f1-9.0.59-20240917 + +USER root + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && chown root:tomcat /var/lib/tomcat/webapps \ + && chmod g+rw /var/lib/tomcat/webapps + +COPY frontend/target/frontend*.war /var/lib/tomcat/webapps/ROOT.war +COPY backend/target/*.war /var/lib/tomcat/webapps/ + +USER tomcat + +EXPOSE 8080 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/config/crypto-gateway.env b/config/crypto-gateway.env new file mode 100644 index 0000000..a6b4df3 --- /dev/null +++ b/config/crypto-gateway.env @@ -0,0 +1,5 @@ +JCSP_KEYSTORE_ALIAS=aef8d0e0-bcaa-4e07-8bbe-4953c6eea458 +JCSP_KEYSTORE_PASS=1234567890 + +SF_OFFLINE_CRL_ENABLED=false +CRYPTO_OFFLINE_CRL_ENABLED=false \ No newline at end of file diff --git a/config/ervu-extract-from-registry-provider.env b/config/ervu-extract-from-registry-provider.env new file mode 100644 index 0000000..0fdac8e --- /dev/null +++ b/config/ervu-extract-from-registry-provider.env @@ -0,0 +1,25 @@ +PG_HOST=10.10.31.119 +PG_PORT=5432 +PG_DATABASE=ervu_extract_from_registry_provider +PG_USER=ervu_extract_from_registry_provider +PG_PASSWORD=ervu_extract_from_registry_provider + +KAFKA_HOSTS=local-kafka:9094 +KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +KAFKA_AUTH_SEC_PROTO=PLAINTEXT +KAFKA_AUTH_SASL_MECH=PLAIN +KAFKA_USER=user2 +KAFKA_PASS=Blfi9d2OFG + +EXTERNAL_KAFKA_HOSTS=local-kafka:9094 +EXTERNAL_KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +EXTERNAL_KAFKA_AUTH_SEC_PROTO=PLAINTEXT +EXTERNAL_KAFKA_AUTH_SASL_MECH=PLAIN +EXTERNAL_KAFKA_USER=user2 +EXTERNAL_KAFKA_PASS=Blfi9d2OFG + +AWS_ENDPOINT=http://ervu-minio.k8s.micord.ru:31900 +AWS_ACCESS_KEY_ID=rlTdTvkmSXu9FsLhfecw +AWS_SECRET_ACCESS_KEY=NUmY0wwRIEyAd98GCKd1cOgJWvLQYAcMMul5Ulu0 + +CRYPTO_GATEWAY_URL=http://crypto-gateway:8080 \ No newline at end of file diff --git a/config/ervu-person-registry.env b/config/ervu-person-registry.env new file mode 100644 index 0000000..0630568 --- /dev/null +++ b/config/ervu-person-registry.env @@ -0,0 +1,23 @@ +PG_HOST=10.10.31.119 +PG_PORT=5432 +PG_DATABASE=ervu_person_registry_local +PG_USER=ervu_person_registry +PG_PASSWORD=ervu_person_registry + +KAFKA_HOSTS=local-kafka:9094 +KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +KAFKA_AUTH_SEC_PROTO=PLAINTEXT +KAFKA_AUTH_SASL_MECH=PLAIN +KAFKA_USER=user2 +KAFKA_PASS=Blfi9d2OFG + +EXTERNAL_KAFKA_HOSTS=local-kafka:9094 +EXTERNAL_KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +EXTERNAL_KAFKA_AUTH_SEC_PROTO=PLAINTEXT +EXTERNAL_KAFKA_AUTH_SASL_MECH=PLAIN +EXTERNAL_KAFKA_USER=user2 +EXTERNAL_KAFKA_PASS=Blfi9d2OFG + +AWS_ENDPOINT=http://ervu-minio.k8s.micord.ru:31900 +AWS_ACCESS_KEY_ID=rlTdTvkmSXu9FsLhfecw +AWS_SECRET_ACCESS_KEY=NUmY0wwRIEyAd98GCKd1cOgJWvLQYAcMMul5Ulu0 diff --git a/config/ervu-rp-summons-service.env b/config/ervu-rp-summons-service.env new file mode 100644 index 0000000..fc08229 --- /dev/null +++ b/config/ervu-rp-summons-service.env @@ -0,0 +1,19 @@ +PGHOST=10.10.31.119 +PGPORT=5432 +PGDATABASE=ervu_rp_summons_service +PGUSER=ervu_rp_summons_service +PGPASSWORD=ervu_rp_summons_service + +KAFKA_HOSTS=local-kafka:9094 +KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +KAFKA_AUTH_SEC_PROTO=PLAINTEXT +KAFKA_AUTH_SASL_MECH=PLAIN +KAFKA_USER=user2 +KAFKA_PASS=Blfi9d2OFG + +EXTERNAL_KAFKA_HOSTS=local-kafka:9094 +EXTERNAL_KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule +EXTERNAL_KAFKA_AUTH_SEC_PROTO=PLAINTEXT +EXTERNAL_KAFKA_AUTH_SASL_MECH=PLAIN +EXTERNAL_KAFKA_USER=user2 +EXTERNAL_KAFKA_PASS=Blfi9d2OFG diff --git a/config/kafdrop.env b/config/kafdrop.env new file mode 100644 index 0000000..064b61a --- /dev/null +++ b/config/kafdrop.env @@ -0,0 +1,2 @@ +KAFKA_BROKERCONNECT=local-kafka:9094 +KAFKA_PROPERTIES=c2VjdXJpdHkucHJvdG9jb2w9UExBSU5URVhUDQpzYXNsLm1lY2hhbmlzbT1QTEFJTg0Kc2FzbC5qYWFzLmNvbmZpZz1vcmcuYXBhY2hlLmthZmthLmNvbW1vbi5zZWN1cml0eS5wbGFpbi5QbGFpbkxvZ2luTW9kdWxlIHJlcXVpcmVkIHVzZXJuYW1lPSd1c2VyMicgcGFzc3dvcmQ9J0JsZmk5ZDJPRkcnOw== \ No newline at end of file diff --git a/config/kafka.env b/config/kafka.env new file mode 100644 index 0000000..6716ba1 --- /dev/null +++ b/config/kafka.env @@ -0,0 +1,23 @@ +KAFKA_CFG_NODE_ID=0 +KAFKA_CFG_PROCESS_ROLES=controller,broker +KAFKA_CFG_LISTENERS=CLIENT://:9092,INTERNAL://:9094,CONTROLLER://:9093 +KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://local-kafka:9092,INTERNAL://local-kafka:9094,CONTROLLER://localhost:9093 +KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:SASL_PLAINTEXT,INTERNAL:PLAINTEXT,CONTROLLER:SASL_PLAINTEXT, +KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@local-kafka:9093 +KAFKA_KRAFT_BOOTSTRAP_SCRAM_USERS=true + +# Controller +KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER +#KAFKA_CONTROLLER_USER=controller_user +#KAFKA_CONTROLLER_PASSWORD=Blfi9d2OFG +KAFKA_CFG_SASL_MECHANISM_CONTROLLER_PROTOCOL=PLAIN + +# Client CLIENT +KAFKA_CLIENT_USERS=user2 +KAFKA_CLIENT_PASSWORDS=Blfi9d2OFG +KAFKA_CLIENT_LISTENER_NAME=CLIENT +KAFKA_CFG_SASL_JAAS_CONFIG=org.apache.kafka.common.security.scram.ScramLoginModule required username="user2" password="Blfi9d2OFG"; + +# Client internal +KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL +KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN \ No newline at end of file diff --git a/config/kafka.properties b/config/kafka.properties new file mode 100644 index 0000000..538f397 --- /dev/null +++ b/config/kafka.properties @@ -0,0 +1,3 @@ +security.protocol=PLAINTEXT +sasl.mechanism=PLAIN +sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='user2' password='Blfi9d2OFG'; \ No newline at end of file diff --git a/config/local.env b/config/local.env new file mode 100644 index 0000000..36a1822 --- /dev/null +++ b/config/local.env @@ -0,0 +1,38 @@ +TZ=Europe/Moscow + +# App datasource +DB_APP_USERNAME=ervu_lkrp_fl +DB_APP_PASSWORD=ervu_lkrp_fl +DB_APP_HOST=10.10.31.119 +DB_APP_PORT=5432 +DB_APP_NAME=ervu_lkrp_fl + +ESIA_SCOPES=snils, fullname, birthdate, id_doc +ESIA_BASE_URI=https://esia-portal1.test.gosuslugi.ru/ +ESIA_ISSUER_URL=http://esia-portal1.test.gosuslugi.ru/ +ESIA_CLIENT_ID=MNSV93 +ESIA_CLIENT_CERT_HASH=CF35A98C48E48665EA73530537BAFBB51F911C434ADC89215C2F86DCD04E28C5 +ESIA_REDIRECT_URL=http://localhost:8080/ + +SIGN_URL=https://ervu-sign-dev.k8s.micord.ru/sign +SIGN_VERIFY_URL=https://ervu-sign-dev.k8s.micord.ru/verify + +ERVU_KAFKA_BOOTSTRAP_SERVERS=local-kafka:9094 +ERVU_KAFKA_USERNAME=user2 +ERVU_KAFKA_PASSWORD=Blfi9d2OFG +ERVU_KAFKA_SASL_MECHANISM=PLAIN +ERVU_KAFKA_SECURITY_PROTOCOL=PLAINTEXT +ERVU_KAFKA_GROUP_ID=ervu-lkrp-fl-new +ERVU_KAFKA_REPLY_TOPIC=ervu.lkpr.person.search.response +ERVU_KAFKA_REQUEST_TOPIC=ervu.lkpr.person.search.request +ERVU_KAFKA_REPLY_TIMEOUT=5 +ERVU_KAFKA_RECRUIT_REQUEST_TOPIC=ervu.recruit.info.request +ERVU_KAFKA_RECRUIT_REPLY_TOPIC=ervu.recruit.info.response +ERVU_KAFKA_RECRUIT_HEADER_CLASS=Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5 +ERVU_KAFKA_REGISTRY_EXTRACT_REQUEST_TOPIC=ervu.extract.info.request +ERVU_KAFKA_REGISTRY_EXTRACT_REPLY_TOPIC=ervu.extract.info.response +ERVU_KAFKA_EXTRACT_HEADER_CLASS=request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3 +ERVU_KAFKA_DOC_LOGIN_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule + +ESIA_TOKEN_CLEAR_CRON=0 0 */1 * * * +COOKIE_PATH=/fl diff --git a/config/printer.env b/config/printer.env new file mode 100644 index 0000000..61ad9e6 --- /dev/null +++ b/config/printer.env @@ -0,0 +1,15 @@ +MICRONAUT_ENVIRONMENTS=local +MICRONAUT_SERVER_PORT=8080 +MICRONAUT_SECURITY_ENABLED=false +KAFKA_BOOTSTRAP_SERVERS=local-kafka:9094 +KAFKA_SASL_MECHANISM=PLAIN +KAFKA_SASL_JAAS_CONFIG='' +KAKFA_SECURITY_PROTOCOL=PLAINTEXT +S3_CLIENTS_DEFAULT_ENDPOINT=http://ervu-minio.k8s.micord.ru:31900 +S3_CLIENTS_DEFAULT_ACCESS_KEY=rlTdTvkmSXu9FsLhfecw +S3_CLIENTS_DEFAULT_SECRET_KEY=NUmY0wwRIEyAd98GCKd1cOgJWvLQYAcMMul5Ulu0 +S3_CLIENTS_DEFAULT_BUCKET=printer +REDIS_URI=redis://:@redis:6379 +RTL_MONITORING_HEALTH_INDICATOR_LIBREOFFICE_ENABLED=false +TOKEN_MANAGER_ENABLED=false +LIBREOFFICE_PORT_NUMBERS=8101,8102,8103,8104,8105,8106,8107,8108 diff --git a/config/tomcat/etc/tomcat/tomcat-users.xml b/config/tomcat/etc/tomcat/tomcat-users.xml deleted file mode 100644 index 4a9631c..0000000 --- a/config/tomcat/etc/tomcat/tomcat-users.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - diff --git a/config/tomcat/var/lib/tomcat/webapps/manager/META-INF/context.xml b/config/tomcat/var/lib/tomcat/webapps/manager/META-INF/context.xml deleted file mode 100644 index 82a93f3..0000000 --- a/config/tomcat/var/lib/tomcat/webapps/manager/META-INF/context.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..e8d7b12 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,106 @@ +services: + local-kafka: + image: docker.io/bitnami/kafka:3.9.0 + container_name: kafka-fl + ports: + - 9092:9092 + - 9094:9094 + volumes: + - ./config/kafka_data:/bitnami/kafka + env_file: + - config/kafka.env + healthcheck: + test: ["CMD", "kafka-topics.sh", "--list", "--bootstrap-server", "localhost:9094"] + interval: 30s + timeout: 10s + retries: 4 + + kafdrop: + container_name: kafdrop-fl + image: obsidiandynamics/kafdrop + restart: "no" + ports: + - 9000:9000 + env_file: + config/kafdrop.env + depends_on: + local-kafka: + condition: service_healthy + + redis: + image: redis/redis-stack:latest + container_name: redis + ports: + - 6379:6379 + + ervu-rp-summons-service: + image: registry-dev.pgs.rtlabs.ru/ervu/ervu-rp-summons-service:0.0.1-sha05ea36ab + container_name: rp-summons-service + env_file: + - config/ervu-rp-summons-service.env + depends_on: + local-kafka: + condition: service_healthy + + ervu-person-registry: + container_name: person-registry + image: registry-dev.pgs.rtlabs.ru/ervu/ervu-person-registry:0.0.1-shad32a31f0 + env_file: + - config/ervu-person-registry.env + depends_on: + local-kafka: + condition: service_healthy + + crypto-gateway: + image: registry-dev.pgs.rtlabs.ru/ervu/crypto-gateway:0.0.1-shada76e6e7 + container_name: crypto-gateway + ports: + - 8080 + env_file: + config/crypto-gateway.env + + printer: + image: registry-dev.pgs.rtlabs.ru/ervu/printer:0.0.1-shabd591b88 + container_name: printer + depends_on: + redis: + condition: service_started + local-kafka: + condition: service_healthy + ports: + - 8080 + - 5005 + env_file: + - config/printer.env + + ervu-extract-from-registry-provider: + container_name: extract-from-registry-provider + image: registry-dev.pgs.rtlabs.ru/ervu/ervu-extract-from-registry-provider:0.0.1-shaa6a2261f + env_file: + - config/ervu-extract-from-registry-provider.env + depends_on: + crypto-gateway: + condition: service_started + local-kafka: + condition: service_healthy + printer: + condition: service_started + + lkrp-fl: + container_name: lkrp-fl + build: + context: . + dockerfile: Dockerfile + ports: + - 8080:8080 + env_file: + - config/local.env + depends_on: + local-kafka: + condition: service_healthy + ervu-extract-from-registry-provider: + condition: service_started + ervu-person-registry: + condition: service_started + ervu-rp-summons-service: + condition: service_started