Merge branch 'develop' into feature/SUPPORT-8458_file

# Conflicts:
#	backend/src/main/java/ru/micord/ervu/kafka/ReplyingKafkaConfig.java
This commit is contained in:
Eduard Tihomirov 2024-09-24 12:22:44 +03:00
commit 6978ba3011
48 changed files with 10288 additions and 10174 deletions

View file

@ -1,6 +1,7 @@
import java.time.Duration;
import javax.sql.DataSource;
import liquibase.integration.spring.SpringLiquibase;
import net.javacrumbs.shedlock.core.LockProvider;
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
import net.javacrumbs.shedlock.spring.ScheduledLockConfiguration;
@ -68,4 +69,12 @@ public class AppConfig {
public LockProvider lockProvider(@Qualifier("datasource") DataSource dataSource) {
return new JdbcTemplateLockProvider(dataSource);
}
@Bean
public SpringLiquibase liquibase(@Qualifier("datasource") DataSource dataSource) {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(dataSource);
liquibase.setChangeLog("classpath:config/changelog-master.xml");
return liquibase;
}
}

View file

@ -19,17 +19,17 @@ import org.springframework.kafka.core.ProducerFactory;
*/
@Configuration
public class KafkaProducerConfig {
@Value("${av-kafka.send.url}")
@Value("${av.kafka.send.url}")
private String kafkaUrl;
@Value("${av-kafka.send.security.protocol}")
@Value("${av.kafka.send.security.protocol}")
private String securityProtocol;
@Value("${av-kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}")
@Value("${av.kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}")
private String loginModule;
@Value("${av-kafka.send.username}")
@Value("${av.kafka.send.username}")
private String username;
@Value("${av-kafka.send.password}")
@Value("${av.kafka.send.password}")
private String password;
@Value("${av-kafka.sasl.mechanism}")
@Value("${av.kafka.sasl.mechanism}")
private String saslMechanism;
@Bean("av-factory")

View file

@ -20,7 +20,7 @@ import org.springframework.stereotype.Component;
@Component
public class EsnsiOkopfClient {
@Value("${esnsi.okopf.url:#{null}}")
@Value("${esnsi.okopf.url}")
private String uri;
@Retryable(value = {TimeoutException.class}, backoff =

View file

@ -1,4 +1,4 @@
package ervu.service.fileupload;
package ervu.model.fileupload;
/**
* @author Alexandr Shalaginov

View file

@ -1,4 +1,4 @@
package ervu.service.fileupload.model;
package ervu.model.fileupload;
import java.util.Objects;

View file

@ -1,4 +1,4 @@
package ervu.service.fileupload.model;
package ervu.model.fileupload;
import java.util.Objects;

View file

@ -1,4 +1,4 @@
package ervu.service.fileupload.model;
package ervu.model.fileupload;
import java.io.Serializable;

View file

@ -1,19 +1,21 @@
package ervu.service.fileupload.model;
package ervu.model.fileupload;
import java.util.Objects;
import ru.micord.ervu.journal.SenderInfo;
/**
* @author Alexandr Shalaginov
*/
public class OrgInfo {
private final String orgName;
private final String orgId;
private final String prnOid;
private final SenderInfo senderInfo;
public OrgInfo(String orgName, String orgId, String prnOid) {
public OrgInfo(String orgName, String orgId, SenderInfo senderInfo) {
this.orgName = orgName;
this.orgId = orgId;
this.prnOid = prnOid;
this.senderInfo = senderInfo;
}
public String getOrgName() {
@ -24,8 +26,8 @@ public class OrgInfo {
return orgId;
}
public String getPrnOid() {
return prnOid;
public SenderInfo getPrnOid() {
return senderInfo;
}
@Override
@ -35,12 +37,12 @@ public class OrgInfo {
OrgInfo orgInfo = (OrgInfo) o;
return Objects.equals(orgName, orgInfo.orgName) && Objects.equals(orgId,
orgInfo.orgId
) && Objects.equals(prnOid, orgInfo.prnOid);
) && Objects.equals(senderInfo, orgInfo.senderInfo);
}
@Override
public int hashCode() {
return Objects.hash(orgName, orgId, prnOid);
return Objects.hash(orgName, orgId, senderInfo);
}
@Override
@ -48,7 +50,7 @@ public class OrgInfo {
return "OrgInfo{" +
"orgName='" + orgName + '\'' +
", orgId='" + orgId + '\'' +
", prnOid='" + prnOid + '\'' +
", senderInfo='" + senderInfo + '\'' +
'}';
}
}

View file

@ -9,8 +9,9 @@ import java.util.UUID;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import ervu.client.fileupload.FileUploadWebDavClient;
import ervu.service.fileupload.model.EmployeeInfoKafkaMessage;
import ervu.service.fileupload.model.FileStatus;
import ervu.model.fileupload.EmployeeInfoFileFormType;
import ervu.model.fileupload.EmployeeInfoKafkaMessage;
import ervu.model.fileupload.FileStatus;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -41,7 +42,7 @@ public class EmployeeInfoFileUploadService {
private final UlDataService ulDataService;
private final JwtTokenService jwtTokenService;
@Value("${av-kafka.send.message.topic.name:employee-files}")
@Value("${av.kafka.send.message.topic.name:employee-files}")
private String kafkaTopicName;
@Value("${file.webdav.upload.url:http://localhost:5757}")
private String url;
@ -78,6 +79,10 @@ public class EmployeeInfoFileUploadService {
String fileId = UUID.randomUUID().toString();
String fileName = multipartFile.getOriginalFilename();
EmployeeInfoFileFormType employeeInfoFileFormType = EmployeeInfoFileFormType.valueOf(formType);
EmployeeModel employeeModel = ulDataService.getEmployeeModel(accessToken);
PersonModel personModel = employeeModel.getPerson();
Token token = jwtTokenService.getToken(authToken);
String[] ids = token.getUserAccountId().split(":");
String jsonMessage = getJsonKafkaMessage(
employeeInfoKafkaMessageService.getKafkaMessage(
fileId,
@ -85,13 +90,14 @@ public class EmployeeInfoFileUploadService {
fileName,
employeeInfoFileFormType,
departureDateTime,
accessToken, authToken, timeZone, fileStatus
)
accessToken,
timeZone,
fileStatus,
ids[1],
ids[0],
personModel
)
);
EmployeeModel employeeModel = ulDataService.getEmployeeModel(accessToken);
PersonModel personModel = employeeModel.getPerson();
Token token = jwtTokenService.getToken(authToken);
String[] ids = token.getUserAccountId().split(":");
interactionService.setStatus(fileId, fileStatus.getStatus(), fileName, employeeInfoFileFormType.getFilePatternName(), Timestamp.valueOf(now),
personModel.getLastName() + " " + personModel.getFirstName().charAt(0) + ". " + personModel.getMiddleName().charAt(0) + ".", (int) multipartFile.getSize(),
ids[1]);

View file

@ -1,14 +1,15 @@
package ervu.service.fileupload;
import ervu.service.fileupload.model.EmployeeInfoKafkaMessage;
import ervu.service.fileupload.model.FileInfo;
import ervu.service.fileupload.model.FileStatus;
import ervu.service.fileupload.model.OrgInfo;
import ervu.model.fileupload.EmployeeInfoFileFormType;
import ervu.model.fileupload.EmployeeInfoKafkaMessage;
import ervu.model.fileupload.FileInfo;
import ervu.model.fileupload.FileStatus;
import ervu.model.fileupload.OrgInfo;
import org.springframework.stereotype.Service;
import ru.micord.ervu.journal.SenderInfo;
import ru.micord.ervu.security.esia.model.OrganizationModel;
import ru.micord.ervu.security.esia.model.PersonModel;
import ru.micord.ervu.security.esia.service.UlDataService;
import ru.micord.ervu.security.webbpm.jwt.model.Token;
import ru.micord.ervu.security.webbpm.jwt.service.JwtTokenService;
/**
* @author Alexandr Shalaginov
@ -16,19 +17,17 @@ import ru.micord.ervu.security.webbpm.jwt.service.JwtTokenService;
@Service
public class EmployeeInfoKafkaMessageService {
private final UlDataService ulDataService;
private final JwtTokenService jwtTokenService;
public EmployeeInfoKafkaMessageService(UlDataService ulDataService, JwtTokenService jwtTokenService) {
public EmployeeInfoKafkaMessageService(UlDataService ulDataService) {
this.ulDataService = ulDataService;
this.jwtTokenService = jwtTokenService;
}
public EmployeeInfoKafkaMessage getKafkaMessage(String fileId, String fileUrl, String fileName,
EmployeeInfoFileFormType formType, String departureDateTime, String accessToken,
String authToken, String timeZone, FileStatus fileStatus) {
String timeZone, FileStatus fileStatus, String ervuId, String prnOid, PersonModel personModel) {
return new EmployeeInfoKafkaMessage(
getOrgInfo(accessToken, authToken),
getOrgInfo(accessToken, ervuId, prnOid, personModel),
getFileInfo(
fileId,
fileUrl,
@ -56,10 +55,13 @@ public class EmployeeInfoKafkaMessageService {
);
}
private OrgInfo getOrgInfo(String accessToken, String authToken) {
private OrgInfo getOrgInfo(String accessToken, String ervuId, String prnOid, PersonModel personModel) {
OrganizationModel organizationModel = ulDataService.getOrganizationModel(accessToken);
Token token = jwtTokenService.getToken(authToken);
String[] ids = token.getUserAccountId().split(":");
return new OrgInfo(organizationModel.getFullName(), ids[1], ids[0]);
SenderInfo senderInfo = new SenderInfo();
senderInfo.setFirstName(personModel.getFirstName());
senderInfo.setLastName(personModel.getLastName());
senderInfo.setMiddleName(personModel.getMiddleName());
senderInfo.setPrnOid(prnOid);
return new OrgInfo(organizationModel.getFullName(), ervuId, senderInfo);
}
}

View file

@ -1,8 +1,6 @@
package ervu.service.okopf;
import ervu.dao.okopf.OkopfDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -12,7 +10,6 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
public class OkopfServiceImpl implements OkopfService {
private final static Logger logger = LoggerFactory.getLogger(OkopfServiceImpl.class);
@Autowired
private OkopfDao okopfDao;

View file

@ -1,20 +1,23 @@
package ervu.service.scheduer;
import java.util.HashMap;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.PostConstruct;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import ervu.client.okopf.EsnsiOkopfClient;
import ervu.dao.okopf.OkopfDao;
import ervu.model.okopf.*;
import ervu.model.okopf.OkopfAttributeValueModel;
import ervu.model.okopf.OkopfDataModel;
import ervu.model.okopf.OkopfModel;
import ervu.model.okopf.OkopfOrgModel;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -23,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
* @author Artyom Hackimullin
*/
@Service
@DependsOn({"liquibase"})
public class EsnsiOkopfSchedulerServiceImpl implements EsnsiOkopfSchedulerService {
private static final Logger logger = LoggerFactory.getLogger(
EsnsiOkopfSchedulerServiceImpl.class);
@ -41,6 +45,7 @@ public class EsnsiOkopfSchedulerServiceImpl implements EsnsiOkopfSchedulerServic
}
@Scheduled(cron = "${esnsi.okopf.cron:0 0 */1 * * *}")
@SchedulerLock(name = "loadOkopf")
@Transactional
public void load() {
String data = esnsiOkopfClient.getJsonOkopFormData();
@ -58,14 +63,13 @@ public class EsnsiOkopfSchedulerServiceImpl implements EsnsiOkopfSchedulerServic
}
private List<OkopfModel> mapToOkopfRecords(OkopfDataModel dataModel) {
Map<String, String> okopfMap = new HashMap<>();
for (OkopfDetailsModel detail : dataModel.getDetails()) {
OkopfAttributeValueModel[] attributeValues = detail.getAttributeValues();
String key = attributeValues[0].getValue();
String value = attributeValues[1].getValue();
okopfMap.put(key, value);
}
return okopfMap.entrySet().stream()
.map(e -> new OkopfModel(e.getKey(), e.getValue())).collect(Collectors.toList());
return Arrays.stream(dataModel.getDetails())
.flatMap(detail -> {
OkopfAttributeValueModel[] attributeValues = detail.getAttributeValues();
String key = attributeValues[0].getValue();
String value = attributeValues[1].getValue();
return Stream.of(new OkopfModel(key, value));
})
.toList();
}
}

View file

@ -24,27 +24,27 @@ import java.util.Map;
@EnableKafka
public class ReplyingKafkaConfig {
@Value("${ervu-kafka.bootstrap-servers}")
@Value("${ervu.kafka.bootstrap.servers}")
private String bootstrapServers;
@Value("${ervu-kafka.org-reply-topic}")
@Value("${ervu.kafka.org.reply.topic}")
private String orgReplyTopic;
@Value("${ervu-kafka.journal-reply-topic}")
@Value("${ervu.kafka.journal.reply.topic}")
private String journalReplyTopic;
@Value("${ervu-kafka.group-id}")
@Value("${ervu.kafka.group.id}")
private String groupId;
@Value("${ervu-kafka.reply-timeout:30}")
@Value("${ervu.kafka.reply.timeout:30}")
private long replyTimeout;
@Value("${ervu-kafka.excerpt-reply-topic}")
private String excerptReplyTopic;
@Value("${ervu-kafka.send.security.protocol}")
@Value("${ervu.kafka.send.security.protocol}")
private String securityProtocol;
@Value("${ervu-kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}")
@Value("${ervu.kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}")
private String loginModule;
@Value("${ervu-kafka.send.username}")
@Value("${ervu.kafka.send.username}")
private String username;
@Value("${ervu-kafka.send.password}")
@Value("${ervu.kafka.send.password}")
private String password;
@Value("${ervu-kafka.sasl.mechanism}")
@Value("${ervu.kafka.sasl.mechanism}")
private String saslMechanism;
@Bean("ervu")

View file

@ -11,43 +11,43 @@ import org.springframework.stereotype.Component;
@Component
public class EsiaConfig {
@Value("${esia-scopes:#{null}}")
@Value("${esia.scopes}")
private String esiaScopes;
@Value("${esia-org-scopes:#{null}}")
@Value("${esia.org.scopes}")
private String esiaOrgScopes;
@Value("${esia-org-scope-url:#{null}}")
@Value("${esia.org.scope.url}")
private String orgScopeUrl;
@Value("${esia-uri.base-uri:#{null}}")
@Value("${esia.base.uri}")
private String esiaBaseUri;
@Value("${esia-client-id:#{null}}")
@Value("${esia.client.id}")
private String clientId;
@Value("${esia-redirect-url:#{null}}")
@Value("${esia.redirect.url}")
private String redirectUrl;
@Value("${sign-url:#{null}}")
@Value("${sign.url}")
private String signUrl;
@Value("${client-cert-hash:#{null}}")
@Value("${esia.client.cert.hash}")
private String clientCertHash;
@Value("${esia.request-timeout:60}")
@Value("${esia.request.timeout:60}")
private long requestTimeout;
@Value("${esia.connection-timeout:30}")
@Value("${esia.connection.timeout:30}")
private long connectionTimeout;
@Value("${esia.logout-url:idp/ext/Logout}")
@Value("${esia.logout.url:idp/ext/Logout}")
private String esiaLogoutUrl;
@Value("${esia.code-url:aas/oauth2/v2/ac}")
@Value("${esia.code.url:aas/oauth2/v2/ac}")
private String esiaCodeUrl;
@Value("${esia.token-url:aas/oauth2/v3/te}")
@Value("${esia.token.url:aas/oauth2/v3/te}")
private String esiaTokenUrl;
public String getEsiaOrgScopes() {

View file

@ -72,10 +72,10 @@ public class EsiaAuthService {
@Autowired
private OkopfService okopfService;
@Value("${ervu-kafka.org-reply-topic}")
@Value("${ervu.kafka.org.reply.topic}")
private String requestReplyTopic;
@Value("${ervu-kafka.org-request-topic}")
@Value("${ervu.kafka.org.request.topic}")
private String requestTopic;
public String generateAuthCodeUrl() {

View file

@ -31,11 +31,11 @@ public class JournalInMemoryStaticGridLoadService implements
private final ReplyingKafkaService ervuReplyingKafkaService;
private final ObjectMapper objectMapper;
@Value("${ervu-kafka.journal-request-topic}")
@Value("${ervu.kafka.journal.request.topic}")
private String requestTopic;
@Value("${ervu-kafka.journal-reply-topic}")
@Value("${ervu.kafka.journal.reply.topic}")
private String replyTopic;
@Value("${db-journal-excluded-statuses:}")
@Value("${db.journal.excluded.statuses:}")
private String[] excludedStatuses;
public JournalInMemoryStaticGridLoadService(JwtTokenService jwtTokenService,

View file

@ -11,7 +11,7 @@
<constraints primaryKey="true"/>
</column>
<column name="name" type="varchar">
<constraints unique="true"/>
<constraints unique="true" nullable="false"/>
</column>
<column name="version" type="int">
<constraints nullable="false"/>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<changeSet id="create-table-shedlock" author="a.khakimullin">
<comment>add table for jobs sync by locking</comment>
<createTable tableName="shedlock">
<column name="name" type="varchar(255)">
<constraints primaryKey="true" primaryKeyName="shedlock_pk"/>
</column>
<column name="lock_until" type="timestamp without time zone"/>
<column name="locked_at" type="timestamp without time zone"/>
<column name="locked_by" type="varchar(255)"/>
</createTable>
</changeSet>
</databaseChangeLog>

View file

@ -5,7 +5,8 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<include file="2024-29-08--01-create-table-okopf-records.xml" relativeToChangelogFile="true"/>
<include file="2024-08-29--01-create-table-okopf-records.xml" relativeToChangelogFile="true"/>
<include file="2024-09-11--01-create-table-interaction-log.xml" relativeToChangelogFile="true"/>
<include file="2024-09-18--02-add-shedlock-table.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View file

@ -0,0 +1,3 @@
CREATE DATABASE "ervu-lkrp-ul"
WITH
OWNER = "ervu-lkrp-ul";

View file

@ -0,0 +1,8 @@
CREATE ROLE "ervu-lkrp-ul" WITH
LOGIN
NOSUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
PASSWORD 'ervu-lkrp-ul';

View file

@ -1,5 +1,5 @@
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
ARG RUNTIME_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903
ARG RUNTIME_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240917
FROM $BUILDER_IMAGE AS builder

View file

@ -1,5 +1,5 @@
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
ARG RUNTIME_IMAGE=docker.angie.software/angie:latest
ARG RUNTIME_IMAGE=nginx:1.24-alpine-slim
FROM $BUILDER_IMAGE AS builder
@ -25,5 +25,5 @@ RUN mkdir -p $HOME/.m2 \
FROM $RUNTIME_IMAGE
COPY config/angie.conf /etc/angie/angie.conf
COPY config/nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /app/frontend/dist /frontend

View file

@ -5,3 +5,38 @@ DB_APP_PASSWORD=ervu-lkrp-ul
DB_APP_HOST=10.10.31.119
DB_APP_PORT=5432
DB_APP_NAME=ervu-lkrp-ul
FILE_WEBDAV_UPLOAD_URL=https://ervu-webdav.k8s.micord.ru
FILE_WEBDAV_UPLOAD_USERNAME=test
FILE_WEBDAV_UPLOAD_PASSWORD=test
AV_KAFKA_SEND_MESSAGE_TOPIC_NAME=file-upload-v2
AV_KAFKA_SEND_URL=http://10.10.31.11:32609
AV_KAFKA_SEND_SECURITY_PROTOCOL=SASL_PLAINTEXT
AV_KAFKA_SASL_MECHANISM=SCRAM-SHA-256
AV_KAFKA_SEND_USERNAME=user1
AV_KAFKA_SEND_PASSWORD=Blfi9d2OFG
ERVU_FILEUPLOAD_MAX_FILE_SIZE=5242880
ERVU_FILEUPLOAD_MAX_REQUEST_SIZE=6291456
ERVU_FILEUPLOAD_FILE_SIZE_THRESHOLD=0
ESIA_SCOPES=fullname, snils, id_doc, birthdate, usr_org, openid
ESIA_ORG_SCOPES=org_fullname, org_shortname, org_brhs, org_brhs_ctts, org_brhs_addrs, org_type, org_ogrn, org_inn, org_leg, org_kpp, org_ctts, org_addrs, org_grps, org_emps
ESIA_ORG_SCOPE_URL=http://esia.gosuslugi.ru/
ESIA_BASE_URI=https://esia-portal1.test.gosuslugi.ru/
ESIA_CLIENT_ID=MNSV89
ESIA_REDIRECT_URL=https://lkrp-dev.micord.ru/ul/
SIGN_URL=https://ervu-sign-dev.k8s.micord.ru/sign
ESIA_CLIENT_CERT_HASH=04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD
ERVU_KAFKA_BOOTSTRAP_SERVERS=localhost:9092
ERVU_KAFKA_ORG_REPLY_TOPIC=ervu.organization.response
ERVU_KAFKA_GROUP_ID=1
ERVU_KAFKA_ORG_REQUEST_TOPIC=ervu.organization.request
ERVU_KAFKA_REPLY_TIMEOUT=30
ERVU_KAFKA_JOURNAL_REQUEST_TOPIC=ervu.organization.journal.request
ERVU_KAFKA_JOURNAL_REPLY_TOPIC=ervu.organization.journal.response
ESNSI_OKOPF_URL=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&encoding=UTF_8
ESNSI_OKOPF_CRON_LOAD=0 0 */1 * * *
ERVU_KAFKA_SEND_SECURITY_PROTOCOL=SASL_PLAINTEXT
ERVU_KAFKA_SASL_MECHANISM=SCRAM-SHA-256
ERVU_KAFKA_SEND_USERNAME=user1
ERVU_KAFKA_SEND_PASSWORD=Blfi9d2OFG

84
config/nginx.conf Normal file
View file

@ -0,0 +1,84 @@
include /etc/nginx/modules-enabled.d/*.conf;
worker_processes 10;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
}
include /etc/nginx/conf-enabled.d/*.conf;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
# text/html doesn't need to be defined there, it's compressed always
gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;
# gzip_comp_level 9;
include /etc/nginx/sites-enabled.d/*.conf;
log_format nginx_main
'$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$request_filename" "$gzip_ratio" $upstream_response_time server: $host : $document_root $fastcgi_script_name ';
server {
listen 80 default;
access_log /var/log/nginx/access.log nginx_main;
error_log /var/log/nginx/error.log error;
charset utf-8;
client_max_body_size 32m;
##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/svg+xml
text/css
text/javascript
text/plain
text/xml;
location / {
root /frontend;
index index.html;
expires -1;
try_files $uri $uri/ $uri/index.html;
}
}
}

View file

@ -57,37 +57,37 @@
<property name="file.webdav.upload.url" value="https://ervu-webdav.k8s.micord.ru"/>
<property name="file.webdav.upload.username" value="test"/>
<property name="file.webdav.upload.password" value="test"/>
<property name="av-kafka.download-request-topic" value="ervu.lkrp.download.request"/>
<property name="av-kafka.send.url" value="localhost:9092"/>
<property name="av-kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
<property name="av-kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
<property name="av-kafka.send.username" value="user1"/>
<property name="av-kafka.send.password" value="Blfi9d2OFG"/>
<property name="av.kafka.download-request-topic" value="ervu.lkrp.download.request"/>
<property name="av.kafka.send.url" value="localhost:9092"/>
<property name="av.kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
<property name="av.kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
<property name="av.kafka.send.username" value="user1"/>
<property name="av.kafka.send.password" value="Blfi9d2OFG"/>
<property name="ervu.fileupload.max_file_size" value="5242880"/>
<property name="ervu.fileupload.max_request_size" value="6291456"/>
<property name="ervu.fileupload.file_size_threshold" value="0"/>
<property name="esia-scopes" value="fullname, snils, id_doc, birthdate, usr_org, openid"/>
<property name="esia-org-scopes" value="org_fullname, org_shortname, org_brhs, org_brhs_ctts, org_brhs_addrs, org_type, org_ogrn, org_inn, org_leg, org_kpp, org_ctts, org_addrs, org_grps, org_emps"/>
<property name="esia-org-scope-url" value="http://esia.gosuslugi.ru/"/>
<property name="esia-uri.base-uri" value="https://esia-portal1.test.gosuslugi.ru/"/>
<property name="esia-client-id" value="MNSV89"/>
<property name="esia-redirect-url" value="https://lkrp.micord.ru"/>
<property name="sign-url" value="https://ervu-sign-dev.k8s.micord.ru/sign"/>
<property name="ervu-kafka.bootstrap-servers" value="localhost:9092"/>
<property name="ervu-kafka.org-reply-topic" value="ervu.organization.response"/>
<property name="ervu-kafka.group-id" value="1"/>
<property name="ervu-kafka.org-request-topic" value="ervu.organization.request"/>
<property name="ervu-kafka.reply-timeout" value="30"/>
<property name="client-cert-hash" value="04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD"/>
<property name="esia.scopes" value="fullname, snils, id_doc, birthdate, usr_org, openid"/>
<property name="esia.org.scopes" value="org_fullname, org_shortname, org_brhs, org_brhs_ctts, org_brhs_addrs, org_type, org_ogrn, org_inn, org_leg, org_kpp, org_ctts, org_addrs, org_grps, org_emps"/>
<property name="esia.org.scope.url" value="http://esia.gosuslugi.ru/"/>
<property name="esia.base.uri" value="https://esia-portal1.test.gosuslugi.ru/"/>
<property name="esia.client.id" value="MNSV89"/>
<property name="esia.redirect.url" value="https://lkrp.micord.ru"/>
<property name="sign.url" value="https://ervu-sign-dev.k8s.micord.ru/sign"/>
<property name="ervu.kafka.bootstrap.servers" value="localhost:9092"/>
<property name="ervu.kafka.org.reply.topic" value="ervu.organization.response"/>
<property name="ervu.kafka.group.id" value="1"/>
<property name="ervu.kafka.org.request.topic" value="ervu.organization.request"/>
<property name="ervu.kafka.reply.timeout" value="30"/>
<property name="esia.client.cert.hash" value="04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD"/>
<property name="bpmn.enable" value="false"/>
<property name="ervu-kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
<property name="ervu-kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
<property name="ervu-kafka.send.username" value="user1"/>
<property name="ervu-kafka.send.password" value="Blfi9d2OFG"/>
<property name="ervu.kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
<property name="ervu.kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
<property name="ervu.kafka.send.username" value="user1"/>
<property name="ervu.kafka.send.password" value="Blfi9d2OFG"/>
<property name="esnsi.okopf.cron.load" value="0 0 */1 * * *"/>
<property name="esnsi.okopf.url" value="https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&amp;encoding=UTF_8"/>
<property name="ervu-kafka.journal-request-topic" value="ervu.organization.journal.request"/>
<property name="ervu-kafka.journal-reply-topic" value="ervu.organization.journal.response"/>
<property name="ervu.kafka.journal.request.topic" value="ervu.organization.journal.request"/>
<property name="ervu.kafka.journal.reply.topic" value="ervu.organization.journal.response"/>
</system-properties>
<management>
<audit-log>

View file

@ -16,39 +16,3 @@ webbpm.mode=production
webbpm.jbpm.hibernate_statistics.enabled=false
webbpm.cache.hazelcast.hosts=127.0.0.1
webbpm.cache.hazelcast.outbound_port_definitions=5801-5820
file.webdav.upload.url=https://ervu-webdav.k8s.micord.ru
file.webdav.upload.username=test
file.webdav.upload.password=test
av-kafka.send.message.topic.name=file-upload-v2
av-kafka.send.url=http://10.10.31.11:32609
av-kafka.send.security.protocol=SASL_PLAINTEXT
av-kafka.sasl.mechanism=SCRAM-SHA-256
av-kafka.send.username=user1
av-kafka.send.password=Blfi9d2OFG
ervu.fileupload.max_file_size=5242880
ervu.fileupload.max_request_size=6291456
ervu.fileupload.file_size_threshold=0
esia-scopes=fullname, snils, id_doc, birthdate, usr_org, openid
esia-org-scopes=org_fullname, org_shortname, org_brhs, org_brhs_ctts, org_brhs_addrs, org_type, org_ogrn, org_inn, org_leg, org_kpp, org_ctts, org_addrs, org_grps, org_emps
esia-org-scope-url=http://esia.gosuslugi.ru/
esia-uri.base-uri=https://esia-portal1.test.gosuslugi.ru/
esia-client-id=MNSV89
esia-redirect-url=https://lkrp-dev.micord.ru/ul/
sign-url=https://ervu-sign-dev.k8s.micord.ru/sign
client-cert-hash=04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD
ervu-kafka.bootstrap-servers=localhost:9092
ervu-kafka.org-reply-topic=ervu.organization.response
ervu-kafka.group-id=1
ervu-kafka.org-request-topic=ervu.organization.request
ervu-kafka.reply-timeout=30
ervu-kafka.journal-request-topic=ervu.organization.journal.request
ervu-kafka.journal-reply-topic=ervu.organization.journal.response
esnsi.okopf.url=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&encoding=UTF_8
esnsi.okopf.cron.load=0 0 */1 * * *
ervu-kafka.send.security.protocol=SASL_PLAINTEXT
ervu-kafka.sasl.mechanism=SCRAM-SHA-256
ervu-kafka.send.username=user1
ervu-kafka.send.password=Blfi9d2OFG

File diff suppressed because it is too large Load diff

View file

@ -401,7 +401,6 @@
<componentRootId>a6c5ce4e-9773-45ee-9153-9cd79ef13a97</componentRootId>
<name>Hbox_9</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -547,7 +546,6 @@
<componentRootId>ea3e7a6d-e69c-4ef0-8a80-d8fd038a8c1e</componentRootId>
<name>Hbox_9_</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -772,7 +770,6 @@
<componentRootId>1a3543a3-3797-4d65-8319-d88e8ccd34e1</componentRootId>
<name>Диалог - выбор файла и отправка</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -1163,7 +1160,7 @@
<entry>
<key>htmlAsString</key>
<value>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/Прил.9_Прием(зачисление)_увольнение(отчисление).xlsx\"\u003eПример заполнения формы (xlsx)\u003c/a\u003e"</simple>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.9_Прием(зачисление)_увольнение(отчисление).xlsx\"\u003eПример заполнения формы (xlsx)\u003c/a\u003e"</simple>
</value>
</entry>
<entry>
@ -1186,7 +1183,7 @@
<entry>
<key>htmlAsString</key>
<value>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/Прил.9_Прием(зачисление)_увольнение(отчисление).csv\"\u003eПример заполнения формы (csv)\u003c/a\u003e"</simple>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.9_Прием(зачисление)_увольнение(отчисление).csv\"\u003eПример заполнения формы (csv)\u003c/a\u003e"</simple>
</value>
</entry>
<entry>
@ -2468,7 +2465,6 @@
<componentRootId>be4863fe-d25f-4965-ae52-8552ab5e8cf9</componentRootId>
<name>Hbox_2</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -2620,7 +2616,6 @@
<componentRootId>52b1c7dd-7763-4f50-84ed-0471a83dd0b4</componentRootId>
<name>Hbox_2_</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -2810,7 +2805,6 @@
<componentRootId>921014e5-1420-4aae-8cba-119dbb4459c7</componentRootId>
<name>Диалог - выбор файла и отправка</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -3201,7 +3195,7 @@
<entry>
<key>htmlAsString</key>
<value>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.13_Внесение_изменений.xlsx\"\u003eПример заполнения формы (xlsx)\u003c/a\u003e"</simple>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.2_Внесение_изменений.xlsx\"\u003eПример заполнения формы (xlsx)\u003c/a\u003e"</simple>
</value>
</entry>
<entry>
@ -3224,7 +3218,7 @@
<entry>
<key>htmlAsString</key>
<value>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.13_Внесение_изменений.csv\"\u003eПример заполнения формы (csv)\u003c/a\u003e"</simple>
<simple>"\u003ca class\u003d\"link\" href\u003d\"doc/example/Прил.2_Внесение_изменений.csv\"\u003eПример заполнения формы (csv)\u003c/a\u003e"</simple>
</value>
</entry>
<entry>
@ -4506,7 +4500,6 @@
<componentRootId>47a51ceb-a4db-4caf-a234-4389e2456f66</componentRootId>
<name>Hbox_10</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -4651,7 +4644,6 @@
<componentRootId>fb8317a8-f9ed-4da3-8018-be3d8efbc469</componentRootId>
<name>Hbox_10_</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -4789,7 +4781,6 @@
<componentRootId>89fcffd4-3cf5-4c26-9b49-f8a366aa6f27</componentRootId>
<name>Диалог - выбор файла и отправка</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -6540,7 +6531,6 @@
<componentRootId>87d2523e-91a0-49ef-9f87-2adc4ff1165a</componentRootId>
<name>Hbox_11</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -6685,7 +6675,6 @@
<componentRootId>a072a677-36d0-4616-a0bd-3541ebae45c8</componentRootId>
<name>Hbox_11_</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -6876,7 +6865,6 @@
<componentRootId>55c1ec96-9697-4547-a00d-e451c683f6d7</componentRootId>
<name>Диалог - выбор файла и отправка</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -8572,7 +8560,6 @@
<componentRootId>025b7644-c658-49b2-a740-188668b8b81e</componentRootId>
<name>Hbox_12</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -8717,7 +8704,6 @@
<componentRootId>7be4de32-b967-4629-9801-425457e4b9c5</componentRootId>
<name>Hbox_12_</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -8908,7 +8894,6 @@
<componentRootId>b8b9ed07-04e0-47ca-9820-671145d744da</componentRootId>
<name>Диалог - выбор файла и отправка</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>