Merge branch 'hotfix/1.9.11'
This commit is contained in:
commit
866a648425
196 changed files with 1104 additions and 566 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -67,3 +67,4 @@ npm-debug.log
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
sync-backend.ps1
|
sync-backend.ps1
|
||||||
sync-frontend.ps1
|
sync-frontend.ps1
|
||||||
|
config/kafka_data
|
||||||
|
|
|
||||||
20
Dockerfile
Normal file
20
Dockerfile
Normal file
|
|
@ -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"]
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||||
<artifactId>fl</artifactId>
|
<artifactId>fl</artifactId>
|
||||||
<version>1.9.10</version>
|
<version>1.9.11</version>
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||||
<artifactId>backend</artifactId>
|
<artifactId>backend</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import ru.micord.ervu.audit.constants.AuditConstants;
|
||||||
import ru.micord.ervu.audit.service.AuditService;
|
import ru.micord.ervu.audit.service.AuditService;
|
||||||
import ru.micord.ervu.dto.ExtractEmptyRequestDto;
|
import ru.micord.ervu.dto.ExtractEmptyRequestDto;
|
||||||
import ru.micord.ervu.dto.ExtractRequestDto;
|
import ru.micord.ervu.dto.ExtractRequestDto;
|
||||||
|
import ru.micord.ervu.exception.ProtobufParsingException;
|
||||||
import ru.micord.ervu.kafka.dto.EmptyExtract;
|
import ru.micord.ervu.kafka.dto.EmptyExtract;
|
||||||
import ru.micord.ervu.kafka.dto.Extract;
|
import ru.micord.ervu.kafka.dto.Extract;
|
||||||
import ru.micord.ervu.kafka.dto.FullExtract;
|
import ru.micord.ervu.kafka.dto.FullExtract;
|
||||||
|
|
@ -114,7 +115,7 @@ public class ExtractController {
|
||||||
auditService.processDownloadEvent(servletRequest, size, fileName, formatRegistry,
|
auditService.processDownloadEvent(servletRequest, size, fileName, formatRegistry,
|
||||||
AuditConstants.FAILURE_STATUS
|
AuditConstants.FAILURE_STATUS
|
||||||
);
|
);
|
||||||
throw new RuntimeException("Failed to parse data", e);
|
throw new ProtobufParsingException("Failed to parse data", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.micord.ervu.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Adel Kalimullin
|
||||||
|
*/
|
||||||
|
public class ProtobufParsingException extends RuntimeException{
|
||||||
|
|
||||||
|
public ProtobufParsingException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProtobufParsingException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProtobufParsingException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -29,17 +29,17 @@ import java.util.UUID;
|
||||||
@EnableKafka
|
@EnableKafka
|
||||||
public class ReplyingKafkaConfig {
|
public class ReplyingKafkaConfig {
|
||||||
|
|
||||||
@Value("${ervu.kafka.bootstrap.servers}")
|
@Value("${kafka.hosts}")
|
||||||
private String bootstrapServers;
|
private String bootstrapServers;
|
||||||
@Value("${ervu.kafka.security.protocol}")
|
@Value("${kafka.auth_sec_proto}")
|
||||||
private String securityProtocol;
|
private String securityProtocol;
|
||||||
@Value("${ervu.kafka.doc.login.module}")
|
@Value("${kafka.auth_sasl_module}")
|
||||||
private String loginModule;
|
private String loginModule;
|
||||||
@Value("${ervu.kafka.username}")
|
@Value("${kafka.user}")
|
||||||
private String username;
|
private String username;
|
||||||
@Value("${ervu.kafka.password}")
|
@Value("${kafka.pass}")
|
||||||
private String password;
|
private String password;
|
||||||
@Value("${ervu.kafka.sasl.mechanism}")
|
@Value("${kafka.auth_sasl_mech}")
|
||||||
private String saslMechanism;
|
private String saslMechanism;
|
||||||
|
|
||||||
@Value("${ervu.kafka.reply.topic}")
|
@Value("${ervu.kafka.reply.topic}")
|
||||||
|
|
@ -101,6 +101,7 @@ public class ReplyingKafkaConfig {
|
||||||
+ username + "\" password=\"" + password + "\";");
|
+ username + "\" password=\"" + password + "\";");
|
||||||
configProps.put(SaslConfigs.SASL_MECHANISM, saslMechanism);
|
configProps.put(SaslConfigs.SASL_MECHANISM, saslMechanism);
|
||||||
configProps.put(ConsumerConfig.GROUP_ID_CONFIG, groupId + "-" + UUID.randomUUID());
|
configProps.put(ConsumerConfig.GROUP_ID_CONFIG, groupId + "-" + UUID.randomUUID());
|
||||||
|
configProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
|
||||||
configProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
|
configProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
|
||||||
return configProps;
|
return configProps;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.micord.ervu.kafka.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Adel Kalimullin
|
||||||
|
*/
|
||||||
|
public class KafkaMessageException extends RuntimeException {
|
||||||
|
|
||||||
|
public KafkaMessageException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public KafkaMessageException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public KafkaMessageException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,6 +10,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.kafka.requestreply.ReplyingKafkaTemplate;
|
import org.springframework.kafka.requestreply.ReplyingKafkaTemplate;
|
||||||
import org.springframework.kafka.requestreply.RequestReplyFuture;
|
import org.springframework.kafka.requestreply.RequestReplyFuture;
|
||||||
|
import ru.micord.ervu.kafka.exception.KafkaMessageException;
|
||||||
import ru.micord.ervu.kafka.exception.KafkaMessageReplyTimeoutException;
|
import ru.micord.ervu.kafka.exception.KafkaMessageReplyTimeoutException;
|
||||||
import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
||||||
|
|
||||||
|
|
@ -27,7 +28,7 @@ public abstract class BaseReplyingKafkaService<T, V> implements ReplyingKafkaSer
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ConsumerRecord<String, V> result = Optional.ofNullable(replyFuture.get())
|
ConsumerRecord<String, V> result = Optional.ofNullable(replyFuture.get())
|
||||||
.orElseThrow(() -> new RuntimeException("Kafka return result is null"));
|
.orElseThrow(() -> new KafkaMessageException("Kafka return result is null"));
|
||||||
LOGGER.info("Thread {} - KafkaSendMessageAndGetReply: {} ms",
|
LOGGER.info("Thread {} - KafkaSendMessageAndGetReply: {} ms",
|
||||||
Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -17,23 +17,23 @@ import ru.micord.ervu.security.esia.model.ExpiringToken;
|
||||||
*/
|
*/
|
||||||
public class EsiaAuthInfoStore {
|
public class EsiaAuthInfoStore {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||||
private static final Map<String, ExpiringToken> accessTokensMap = new ConcurrentHashMap<>();
|
private static final Map<String, ExpiringToken> ACCESS_TOKENS_MAP = new ConcurrentHashMap<>();
|
||||||
private static final Map<String, ExpiringToken> refreshTokensMap = new ConcurrentHashMap<>();
|
private static final Map<String, ExpiringToken> REFRESH_TOKENS_MAP = new ConcurrentHashMap<>();
|
||||||
private static final Map<String, List<ExpiringState>> prnsUuidStateMap = new ConcurrentHashMap<>();
|
private static final Map<String, List<ExpiringState>> PRNS_UUID_STATE_MAP = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public static void addAccessToken(String prnOid, String token, long expiresIn) {
|
public static void addAccessToken(String prnOid, String token, long expiresIn) {
|
||||||
if (token != null) {
|
if (token != null) {
|
||||||
long expiryTime = System.currentTimeMillis() + 1000L * expiresIn;
|
long expiryTime = System.currentTimeMillis() + 1000L * expiresIn;
|
||||||
accessTokensMap.put(prnOid, new ExpiringToken(token, expiryTime));
|
ACCESS_TOKENS_MAP.put(prnOid, new ExpiringToken(token, expiryTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getAccessToken(String prnOid) {
|
public static String getAccessToken(String prnOid) {
|
||||||
return accessTokensMap.get(prnOid).getAccessToken();
|
return ACCESS_TOKENS_MAP.get(prnOid).getAccessToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean validateAccessToken(String prnOid) {
|
public static boolean validateAccessToken(String prnOid) {
|
||||||
ExpiringToken token = accessTokensMap.get(prnOid);
|
ExpiringToken token = ACCESS_TOKENS_MAP.get(prnOid);
|
||||||
if (token == null || token.getAccessToken() == null) {
|
if (token == null || token.getAccessToken() == null) {
|
||||||
LOGGER.error("No ESIA access token for prnOid: " + prnOid);
|
LOGGER.error("No ESIA access token for prnOid: " + prnOid);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -46,46 +46,46 @@ public class EsiaAuthInfoStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeExpiredAccessToken() {
|
public static void removeExpiredAccessToken() {
|
||||||
for (String key : accessTokensMap.keySet()) {
|
for (String key : ACCESS_TOKENS_MAP.keySet()) {
|
||||||
ExpiringToken token = accessTokensMap.get(key);
|
ExpiringToken token = ACCESS_TOKENS_MAP.get(key);
|
||||||
if (token != null && token.isExpired()) {
|
if (token != null && token.isExpired()) {
|
||||||
accessTokensMap.remove(key);
|
ACCESS_TOKENS_MAP.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeExpiredRefreshToken() {
|
public static void removeExpiredRefreshToken() {
|
||||||
for (String key : refreshTokensMap.keySet()) {
|
for (String key : REFRESH_TOKENS_MAP.keySet()) {
|
||||||
ExpiringToken token = refreshTokensMap.get(key);
|
ExpiringToken token = REFRESH_TOKENS_MAP.get(key);
|
||||||
if (token != null && token.isExpired()) {
|
if (token != null && token.isExpired()) {
|
||||||
refreshTokensMap.remove(key);
|
REFRESH_TOKENS_MAP.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeAccessToken(String prnOid) {
|
public static void removeAccessToken(String prnOid) {
|
||||||
accessTokensMap.remove(prnOid);
|
ACCESS_TOKENS_MAP.remove(prnOid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addRefreshToken(String prnOid, String token, long expiresIn) {
|
public static void addRefreshToken(String prnOid, String token, long expiresIn) {
|
||||||
if (token != null) {
|
if (token != null) {
|
||||||
long expiryTime = System.currentTimeMillis() + 1000L * expiresIn;
|
long expiryTime = System.currentTimeMillis() + 1000L * expiresIn;
|
||||||
refreshTokensMap.put(prnOid, new ExpiringToken(token, expiryTime));
|
REFRESH_TOKENS_MAP.put(prnOid, new ExpiringToken(token, expiryTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getRefreshToken(String prnOid) {
|
public static String getRefreshToken(String prnOid) {
|
||||||
return refreshTokensMap.get(prnOid).getAccessToken();
|
return REFRESH_TOKENS_MAP.get(prnOid).getAccessToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeRefreshToken(String prnOid) {
|
public static void removeRefreshToken(String prnOid) {
|
||||||
refreshTokensMap.remove(prnOid);
|
REFRESH_TOKENS_MAP.remove(prnOid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addState(String prnsUUID, String state, long expiresIn, long attemptsCount) {
|
public static void addState(String prnsUUID, String state, long expiresIn, long attemptsCount) {
|
||||||
long expiryTime = System.currentTimeMillis() + expiresIn * 1000L;
|
long expiryTime = System.currentTimeMillis() + expiresIn * 1000L;
|
||||||
ExpiringState newState = new ExpiringState(state, expiryTime);
|
ExpiringState newState = new ExpiringState(state, expiryTime);
|
||||||
prnsUuidStateMap.compute(prnsUUID, (key, states) -> {
|
PRNS_UUID_STATE_MAP.compute(prnsUUID, (key, states) -> {
|
||||||
if (states == null) {
|
if (states == null) {
|
||||||
states = new CopyOnWriteArrayList<>();
|
states = new CopyOnWriteArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
@ -98,7 +98,7 @@ public class EsiaAuthInfoStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean containsState(String prnsUUID, String state) {
|
public static boolean containsState(String prnsUUID, String state) {
|
||||||
List<ExpiringState> states = prnsUuidStateMap.get(prnsUUID);
|
List<ExpiringState> states = PRNS_UUID_STATE_MAP.get(prnsUUID);
|
||||||
if (states == null) {
|
if (states == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -113,12 +113,12 @@ public class EsiaAuthInfoStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeState(String prnsUUID) {
|
public static void removeState(String prnsUUID) {
|
||||||
prnsUuidStateMap.remove(prnsUUID);
|
PRNS_UUID_STATE_MAP.remove(prnsUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeExpiredState() {
|
public static void removeExpiredState() {
|
||||||
for (String key : prnsUuidStateMap.keySet()) {
|
for (String key : PRNS_UUID_STATE_MAP.keySet()) {
|
||||||
prnsUuidStateMap.computeIfPresent(key, (k, states) -> {
|
PRNS_UUID_STATE_MAP.computeIfPresent(key, (k, states) -> {
|
||||||
states.removeIf(ExpiringState::isExpired);
|
states.removeIf(ExpiringState::isExpired);
|
||||||
return states.isEmpty() ? null : states;
|
return states.isEmpty() ? null : states;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ public class EsiaAccessToken implements Serializable {
|
||||||
private String sid;
|
private String sid;
|
||||||
|
|
||||||
@JsonProperty("urn:esia:sbj_id")
|
@JsonProperty("urn:esia:sbj_id")
|
||||||
private String sbj_id;
|
private String sbjId;
|
||||||
|
@JsonProperty("client_id")
|
||||||
private String client_id;
|
private String clientId;
|
||||||
|
|
||||||
private Long iat;
|
private Long iat;
|
||||||
|
|
||||||
|
|
@ -71,20 +71,20 @@ public class EsiaAccessToken implements Serializable {
|
||||||
this.sid = sid;
|
this.sid = sid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSbj_id() {
|
public String getSbjId() {
|
||||||
return sbj_id;
|
return sbjId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSbj_id(String sbj_id) {
|
public void setSbjId(String sbjId) {
|
||||||
this.sbj_id = sbj_id;
|
this.sbjId = sbjId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getClient_id() {
|
public String getClientId() {
|
||||||
return client_id;
|
return clientId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClient_id(String client_id) {
|
public void setClientId(String clientId) {
|
||||||
this.client_id = client_id;
|
this.clientId = clientId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getIat() {
|
public Long getIat() {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package ru.micord.ervu.security.esia.model;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Eduard Tihomirov
|
* @author Eduard Tihomirov
|
||||||
|
|
@ -12,44 +13,46 @@ public class EsiaTokenResponse implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 7655328287602576975L;
|
private static final long serialVersionUID = 7655328287602576975L;
|
||||||
|
|
||||||
private String id_token;
|
@JsonProperty("id_token")
|
||||||
|
private String tokenId;
|
||||||
private String access_token;
|
@JsonProperty("access_token")
|
||||||
|
private String accessToken;
|
||||||
private String refresh_token;
|
@JsonProperty("refresh_token")
|
||||||
|
private String refreshToken;
|
||||||
|
|
||||||
private String state;
|
private String state;
|
||||||
|
@JsonProperty("token_type")
|
||||||
private String token_type;
|
private String tokenType;
|
||||||
|
@JsonProperty("expires_in")
|
||||||
private Long expires_in;
|
private Long expiresIn;
|
||||||
|
|
||||||
private String error;
|
private String error;
|
||||||
|
|
||||||
private String error_description;
|
@JsonProperty("error_description")
|
||||||
|
private String errorDescription;
|
||||||
|
|
||||||
public String getId_token() {
|
public String getTokenId() {
|
||||||
return id_token;
|
return tokenId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setId_token(String id_token) {
|
public void setTokenId(String tokenId) {
|
||||||
this.id_token = id_token;
|
this.tokenId = tokenId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccess_token() {
|
public String getAccessToken() {
|
||||||
return access_token;
|
return accessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccess_token(String access_token) {
|
public void setAccessToken(String accessToken) {
|
||||||
this.access_token = access_token;
|
this.accessToken = accessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRefresh_token() {
|
public String getRefreshToken() {
|
||||||
return refresh_token;
|
return refreshToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRefresh_token(String refresh_token) {
|
public void setRefreshToken(String refreshToken) {
|
||||||
this.refresh_token = refresh_token;
|
this.refreshToken = refreshToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getState() {
|
public String getState() {
|
||||||
|
|
@ -60,20 +63,20 @@ public class EsiaTokenResponse implements Serializable {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getToken_type() {
|
public String getTokenType() {
|
||||||
return token_type;
|
return tokenType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setToken_type(String token_type) {
|
public void setTokenType(String tokenType) {
|
||||||
this.token_type = token_type;
|
this.tokenType = tokenType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getExpires_in() {
|
public Long getExpiresIn() {
|
||||||
return expires_in;
|
return expiresIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpires_in(Long expires_in) {
|
public void setExpiresIn(Long expiresIn) {
|
||||||
this.expires_in = expires_in;
|
this.expiresIn = expiresIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getError() {
|
public String getError() {
|
||||||
|
|
@ -84,11 +87,11 @@ public class EsiaTokenResponse implements Serializable {
|
||||||
this.error = error;
|
this.error = error;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getError_description() {
|
public String getErrorDescription() {
|
||||||
return error_description;
|
return errorDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setError_description(String error_description) {
|
public void setErrorDescription(String errorDescription) {
|
||||||
this.error_description = error_description;
|
this.errorDescription = errorDescription;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package ru.micord.ervu.security.esia.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Eduard Tihomirov
|
||||||
|
*/
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
public class SignResponse implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private String signature;
|
||||||
|
private String state;
|
||||||
|
|
||||||
|
public String getSignature() {
|
||||||
|
return signature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSignature(String signature) {
|
||||||
|
this.signature = signature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(String state) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -34,6 +34,8 @@ import org.springframework.security.core.context.SecurityContext;
|
||||||
import ru.micord.ervu.audit.constants.AuditConstants;
|
import ru.micord.ervu.audit.constants.AuditConstants;
|
||||||
import ru.micord.ervu.audit.service.AuditService;
|
import ru.micord.ervu.audit.service.AuditService;
|
||||||
import org.springframework.web.util.WebUtils;
|
import org.springframework.web.util.WebUtils;
|
||||||
|
import ru.micord.ervu.audit.constants.AuditConstants;
|
||||||
|
import ru.micord.ervu.audit.service.AuditService;
|
||||||
import ru.micord.ervu.kafka.model.Document;
|
import ru.micord.ervu.kafka.model.Document;
|
||||||
import ru.micord.ervu.kafka.model.Person;
|
import ru.micord.ervu.kafka.model.Person;
|
||||||
import ru.micord.ervu.kafka.model.Response;
|
import ru.micord.ervu.kafka.model.Response;
|
||||||
|
|
@ -58,6 +60,9 @@ import ru.micord.ervu.security.webbpm.jwt.model.Token;
|
||||||
|
|
||||||
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
|
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
|
||||||
|
|
||||||
|
import static ru.micord.ervu.security.webbpm.jwt.util.SecurityUtil.getCurrentUserEsiaId;
|
||||||
|
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Eduard Tihomirov
|
* @author Eduard Tihomirov
|
||||||
*/
|
*/
|
||||||
|
|
@ -233,23 +238,23 @@ public class EsiaAuthService {
|
||||||
|
|
||||||
if (tokenResponse == null || tokenResponse.getError() != null) {
|
if (tokenResponse == null || tokenResponse.getError() != null) {
|
||||||
String errMsg =
|
String errMsg =
|
||||||
tokenResponse != null ? tokenResponse.getError_description() : "response is empty";
|
tokenResponse != null ? tokenResponse.getErrorDescription() : "response is empty";
|
||||||
throw new IllegalStateException("Esia response error. " + errMsg);
|
throw new IllegalStateException("Esia response error. " + errMsg);
|
||||||
}
|
}
|
||||||
if (!tokenResponse.getState().equals(newState)) {
|
if (!tokenResponse.getState().equals(newState)) {
|
||||||
throw new EsiaException("Token invalid. State from request not equals with state from response.");
|
throw new EsiaException("Token invalid. State from request not equals with state from response.");
|
||||||
}
|
}
|
||||||
esiaAccessTokenStr = tokenResponse.getAccess_token();
|
esiaAccessTokenStr = tokenResponse.getAccessToken();
|
||||||
startTime = System.currentTimeMillis();
|
startTime = System.currentTimeMillis();
|
||||||
String verifyResult = verifyToken(esiaAccessTokenStr);
|
String verifyResult = verifyToken(esiaAccessTokenStr);
|
||||||
verifySecret = System.currentTimeMillis() - startTime;
|
verifySecret = System.currentTimeMillis() - startTime;
|
||||||
if (verifyResult != null) {
|
if (verifyResult != null) {
|
||||||
throw new EsiaException(verifyResult);
|
throw new EsiaException(verifyResult);
|
||||||
}
|
}
|
||||||
String esiaRefreshTokenStr = tokenResponse.getRefresh_token();
|
String esiaRefreshTokenStr = tokenResponse.getRefreshToken();
|
||||||
EsiaAccessToken esiaAccessToken = personalDataService.readToken(esiaAccessTokenStr);
|
EsiaAccessToken esiaAccessToken = personalDataService.readToken(esiaAccessTokenStr);
|
||||||
prnOid = esiaAccessToken.getSbj_id();
|
prnOid = esiaAccessToken.getSbjId();
|
||||||
expiresIn = tokenResponse.getExpires_in();
|
expiresIn = tokenResponse.getExpiresIn();
|
||||||
EsiaAuthInfoStore.addAccessToken(prnOid, esiaAccessTokenStr, expiresIn);
|
EsiaAuthInfoStore.addAccessToken(prnOid, esiaAccessTokenStr, expiresIn);
|
||||||
EsiaAuthInfoStore.addRefreshToken(prnOid, esiaRefreshTokenStr, expiresIn);
|
EsiaAuthInfoStore.addRefreshToken(prnOid, esiaRefreshTokenStr, expiresIn);
|
||||||
}
|
}
|
||||||
|
|
@ -329,26 +334,26 @@ public class EsiaAuthService {
|
||||||
EsiaTokenResponse tokenResponse = objectMapper.readValue(responseString, EsiaTokenResponse.class);
|
EsiaTokenResponse tokenResponse = objectMapper.readValue(responseString, EsiaTokenResponse.class);
|
||||||
if (tokenResponse == null || tokenResponse.getError() != null) {
|
if (tokenResponse == null || tokenResponse.getError() != null) {
|
||||||
String errMsg =
|
String errMsg =
|
||||||
tokenResponse != null ? tokenResponse.getError_description() : "response is empty";
|
tokenResponse != null ? tokenResponse.getErrorDescription() : "response is empty";
|
||||||
throw new IllegalStateException("Esia response error. " + errMsg);
|
throw new IllegalStateException("Esia response error. " + errMsg);
|
||||||
}
|
}
|
||||||
if (!tokenResponse.getState().equals(state)) {
|
if (!tokenResponse.getState().equals(state)) {
|
||||||
throw new EsiaException("Token invalid. State from request not equals with state from response.");
|
throw new EsiaException("Token invalid. State from request not equals with state from response.");
|
||||||
}
|
}
|
||||||
String esiaAccessTokenStr = tokenResponse.getAccess_token();
|
String esiaAccessTokenStr = tokenResponse.getAccessToken();
|
||||||
String verifyResult = verifyToken(esiaAccessTokenStr);
|
String verifyResult = verifyToken(esiaAccessTokenStr);
|
||||||
if (verifyResult != null) {
|
if (verifyResult != null) {
|
||||||
throw new EsiaException(verifyResult);
|
throw new EsiaException(verifyResult);
|
||||||
}
|
}
|
||||||
String esiaNewRefreshTokenStr = tokenResponse.getRefresh_token();
|
String esiaNewRefreshTokenStr = tokenResponse.getRefreshToken();
|
||||||
EsiaAccessToken esiaAccessToken = personalDataService.readToken(esiaAccessTokenStr);
|
EsiaAccessToken esiaAccessToken = personalDataService.readToken(esiaAccessTokenStr);
|
||||||
String prnOid = esiaAccessToken.getSbj_id();
|
String prnOid = esiaAccessToken.getSbjId();
|
||||||
Long expiresIn = tokenResponse.getExpires_in();
|
Long expiresIn = tokenResponse.getExpiresIn();
|
||||||
EsiaAuthInfoStore.addAccessToken(prnOid, esiaAccessTokenStr, expiresIn);
|
EsiaAuthInfoStore.addAccessToken(prnOid, esiaAccessTokenStr, expiresIn);
|
||||||
EsiaAuthInfoStore.addRefreshToken(prnOid, esiaNewRefreshTokenStr, expiresIn);
|
EsiaAuthInfoStore.addRefreshToken(prnOid, esiaNewRefreshTokenStr, expiresIn);
|
||||||
PersonModel personModel = personalDataService.getPersonModel(esiaAccessTokenStr);
|
PersonModel personModel = personalDataService.getPersonModel(esiaAccessTokenStr);
|
||||||
Response ervuIdResponse = getErvuIdResponse(personModel);
|
Response ervuIdResponse = getErvuIdResponse(personModel);
|
||||||
createTokenAndAddCookie(response, esiaAccessToken.getSbj_id(), ervuIdResponse.getErvuId(), expiresIn);
|
createTokenAndAddCookie(response, esiaAccessToken.getSbjId(), ervuIdResponse.getErvuId(), expiresIn);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
throw new EsiaException(e);
|
throw new EsiaException(e);
|
||||||
|
|
@ -469,8 +474,8 @@ public class EsiaAuthService {
|
||||||
if (!esiaHeader.getTyp().equals("JWT")) {
|
if (!esiaHeader.getTyp().equals("JWT")) {
|
||||||
return "Token invalid. Token type: " + esiaHeader.getTyp() + " invalid";
|
return "Token invalid. Token type: " + esiaHeader.getTyp() + " invalid";
|
||||||
}
|
}
|
||||||
if (!esiaAccessToken.getClient_id().equals(esiaConfig.getClientId())) {
|
if (!esiaAccessToken.getClientId().equals(esiaConfig.getClientId())) {
|
||||||
return "Token invalid. Token clientId: " + esiaAccessToken.getClient_id() + " invalid";
|
return "Token invalid. Token clientId: " + esiaAccessToken.getClientId() + " invalid";
|
||||||
}
|
}
|
||||||
if (!esiaAccessToken.getIss().equals(esiaConfig.getEsiaIssuerUrl())) {
|
if (!esiaAccessToken.getIss().equals(esiaConfig.getEsiaIssuerUrl())) {
|
||||||
return "Token invalid. Token issuer:" + esiaAccessToken.getIss() + " invalid";
|
return "Token invalid. Token issuer:" + esiaAccessToken.getIss() + " invalid";
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
try {
|
try {
|
||||||
EsiaAccessToken esiaAccessToken = readToken(accessToken);
|
EsiaAccessToken esiaAccessToken = readToken(accessToken);
|
||||||
String prnsId = esiaAccessToken.getSbj_id();
|
String prnsId = esiaAccessToken.getSbjId();
|
||||||
PersonModel personModel = getPersonData(prnsId, accessToken);
|
PersonModel personModel = getPersonData(prnsId, accessToken);
|
||||||
personModel.setPassportModel(
|
personModel.setPassportModel(
|
||||||
getPassportModel(prnsId, accessToken, personModel.getrIdDoc()));
|
getPassportModel(prnsId, accessToken, personModel.getrIdDoc()));
|
||||||
|
|
@ -49,7 +49,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
LOGGER.error("Thread {} - RequestPersonData: {} ms", Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
LOGGER.error("Thread {} - RequestPersonData: {} ms", Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||||
throw new RuntimeException(e);
|
throw new EsiaException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
||||||
return objectMapper.readValue(getRespDoc.body(), PassportModel.class);
|
return objectMapper.readValue(getRespDoc.body(), PassportModel.class);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new EsiaException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
||||||
return objectMapper.readValue(getResp.body(), PersonModel.class);
|
return objectMapper.readValue(getResp.body(), PersonModel.class);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new EsiaException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
||||||
return esiaAccessToken;
|
return esiaAccessToken;
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new EsiaException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.micord.ervu.security.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Adel Kalimullin
|
||||||
|
*/
|
||||||
|
public class UnauthorizedException extends RuntimeException{
|
||||||
|
|
||||||
|
public UnauthorizedException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UnauthorizedException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UnauthorizedException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.micord.ervu.security.esia.EsiaAuthInfoStore;
|
import ru.micord.ervu.security.esia.EsiaAuthInfoStore;
|
||||||
|
import ru.micord.ervu.security.exception.UnauthorizedException;
|
||||||
import ru.micord.ervu.security.webbpm.jwt.UserIdsPair;
|
import ru.micord.ervu.security.webbpm.jwt.UserIdsPair;
|
||||||
import ru.micord.ervu.security.webbpm.jwt.model.Token;
|
import ru.micord.ervu.security.webbpm.jwt.model.Token;
|
||||||
|
|
||||||
|
|
@ -33,13 +34,13 @@ public class JwtTokenService {
|
||||||
@Value("${webbpm.security.token.issuer:#{null}}")
|
@Value("${webbpm.security.token.issuer:#{null}}")
|
||||||
private final String tokenIssuerName =
|
private final String tokenIssuerName =
|
||||||
ResourceMetadataUtils.PROJECT_GROUP_ID + "." + ResourceMetadataUtils.PROJECT_ARTIFACT_ID;
|
ResourceMetadataUtils.PROJECT_GROUP_ID + "." + ResourceMetadataUtils.PROJECT_ARTIFACT_ID;
|
||||||
private final SecretKey SIGNING_KEY;
|
private final SecretKey signingKey;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public JwtTokenService(@Value("${webbpm.security.token.secret.key:ZjE5ZjMxNmYtODViZC00ZTQ5LWIxZmYtOGEzYzE3Yjc1MDVk}")
|
public JwtTokenService(@Value("${webbpm.security.token.secret.key:ZjE5ZjMxNmYtODViZC00ZTQ5LWIxZmYtOGEzYzE3Yjc1MDVk}")
|
||||||
String secretKey) {
|
String secretKey) {
|
||||||
byte[] encodedKey = Base64.getDecoder().decode(secretKey);
|
byte[] encodedKey = Base64.getDecoder().decode(secretKey);
|
||||||
this.SIGNING_KEY = Keys.hmacShaKeyFor(encodedKey);
|
this.signingKey = Keys.hmacShaKeyFor(encodedKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Token createAccessToken(String userAccountId, Long expiresIn, String ervuId) {
|
public Token createAccessToken(String userAccountId, Long expiresIn, String ervuId) {
|
||||||
|
|
@ -51,7 +52,7 @@ public class JwtTokenService {
|
||||||
.setIssuer(tokenIssuerName)
|
.setIssuer(tokenIssuerName)
|
||||||
.setIssuedAt(new Date(System.currentTimeMillis()))
|
.setIssuedAt(new Date(System.currentTimeMillis()))
|
||||||
.setExpiration(expirationDate)
|
.setExpiration(expirationDate)
|
||||||
.signWith(SIGNING_KEY)
|
.signWith(signingKey)
|
||||||
.compact();
|
.compact();
|
||||||
return new Token(idsConcatenated, tokenIssuerName, expirationDate, value);
|
return new Token(idsConcatenated, tokenIssuerName, expirationDate, value);
|
||||||
}
|
}
|
||||||
|
|
@ -72,7 +73,7 @@ public class JwtTokenService {
|
||||||
|
|
||||||
public Token getToken(String token) {
|
public Token getToken(String token) {
|
||||||
Claims claims = Jwts.parser()
|
Claims claims = Jwts.parser()
|
||||||
.setSigningKey(SIGNING_KEY)
|
.setSigningKey(signingKey)
|
||||||
.parseClaimsJws(token)
|
.parseClaimsJws(token)
|
||||||
.getBody();
|
.getBody();
|
||||||
|
|
||||||
|
|
@ -95,7 +96,7 @@ public class JwtTokenService {
|
||||||
return esiaUserId;
|
return esiaUserId;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new RuntimeException("Failed to get auth data. User unauthorized.");
|
throw new UnauthorizedException("Failed to get auth data. User unauthorized.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
kafka_reply_timeout=Превышено время ожидания ответа от сервера. Попробуйте повторить запрос позже или обратитесь к системному администратору
|
kafka_reply_timeout=Превышено время ожидания ответа от сервера.
|
||||||
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
|
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
kafka_reply_timeout=Превышено время ожидания ответа от сервера. Попробуйте повторить запрос позже или обратитесь к системному администратору
|
kafka_reply_timeout=Превышено время ожидания ответа от сервера.
|
||||||
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
|
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
|
||||||
12
config.md
12
config.md
|
|
@ -769,12 +769,12 @@ JBPM использует 3 корневых категории логирова
|
||||||
- `ESIA_CLIENT_CERT_HASH` - параметр, содержащий хэш сертификата (fingerprint сертификата) системы-клиента в hex–формате
|
- `ESIA_CLIENT_CERT_HASH` - параметр, содержащий хэш сертификата (fingerprint сертификата) системы-клиента в hex–формате
|
||||||
|
|
||||||
#### Конфигурация и топики Kafka
|
#### Конфигурация и топики Kafka
|
||||||
- `ERVU_KAFKA_BOOTSTRAP_SERVERS` - список пар хост:порт, использующихся для установки первоначального соединения с кластером Kafka
|
- `KAFKA_HOSTS` - список пар хост:порт, использующихся для установки первоначального соединения с кластером Kafka
|
||||||
- `ERVU_KAFKA_USERNAME` - пользователь для подключения к Kafka
|
- `KAFKA_USER` - пользователь для подключения к Kafka
|
||||||
- `ERVU_KAFKA_PASSWORD` - пароль для подключения к Kafka
|
- `KAFKA_PASS` - пароль для подключения к Kafka
|
||||||
- `ERVU_KAFKA_SASL_MECHANISM` - механизм SASL, используемый для клиентских подключений
|
- `KAFKA_AUTH_SASL_MECH` - механизм SASL, используемый для клиентских подключений
|
||||||
- `ERVU_KAFKA_SECURITY_PROTOCOL` - протокол, используемый для взаимодействия с брокерами
|
- `KAFKA_AUTH_SEC_PROTO` - протокол, используемый для взаимодействия с брокерами
|
||||||
- `ERVU_KAFKA_DOC_LOGIN_MODULE` - имя класса для входа в систему для SASL-соединений в формате, используемом конфигурационными файлами JAAS
|
- `KAFKA_AUTH_SASL_MODULE` - имя класса для входа в систему для SASL-соединений в формате, используемом конфигурационными файлами JAAS
|
||||||
- `ERVU_KAFKA_GROUP_ID` - идентификатор группы потребителей, который отвечает за создание группы для объединения нескольких потребителей
|
- `ERVU_KAFKA_GROUP_ID` - идентификатор группы потребителей, который отвечает за создание группы для объединения нескольких потребителей
|
||||||
- `ERVU_KAFKA_REPLY_TIMEOUT` - таймаут ожидания ответа
|
- `ERVU_KAFKA_REPLY_TIMEOUT` - таймаут ожидания ответа
|
||||||
- `ERVU_KAFKA_REQUEST_TOPIC` - топик для отправки запроса на получение id пользователя в системе ЕРВУ
|
- `ERVU_KAFKA_REQUEST_TOPIC` - топик для отправки запроса на получение id пользователя в системе ЕРВУ
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
|
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
|
||||||
ARG BACKEND_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903
|
ARG BACKEND_IMAGE=repo.micord.ru/alt/alt-tomcat:c10f1-9.0.59-20240903
|
||||||
ARG FRONTEND_IMAGE=nginx:1.24-alpine-slim
|
ARG FRONTEND_IMAGE=nginx:1.26.2-alpine-slim
|
||||||
|
|
||||||
FROM $BUILDER_IMAGE AS builder
|
FROM $BUILDER_IMAGE AS builder
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
|
ARG BUILDER_IMAGE=registry.altlinux.org/basealt/altsp:c10f1
|
||||||
ARG RUNTIME_IMAGE=nginx:1.24-alpine-slim
|
ARG RUNTIME_IMAGE=nginx:1.26.2-alpine-slim
|
||||||
|
|
||||||
FROM $BUILDER_IMAGE AS builder
|
FROM $BUILDER_IMAGE AS builder
|
||||||
|
|
||||||
|
|
|
||||||
5
config/crypto-gateway.env
Normal file
5
config/crypto-gateway.env
Normal file
|
|
@ -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
|
||||||
19
config/ervu-decision-document-service.env
Normal file
19
config/ervu-decision-document-service.env
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
PG_HOST=10.10.31.119
|
||||||
|
PG_PORT=5432
|
||||||
|
PG_DATABASE=ervu_decision_document_local
|
||||||
|
PG_USER=ervu_decision_document
|
||||||
|
PG_PASSWORD=ervu_decision_document
|
||||||
|
|
||||||
|
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
|
||||||
25
config/ervu-extract-from-registry-provider.env
Normal file
25
config/ervu-extract-from-registry-provider.env
Normal file
|
|
@ -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
|
||||||
19
config/ervu-journal-service.env
Normal file
19
config/ervu-journal-service.env
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
PG_HOST=10.10.31.119
|
||||||
|
PG_PORT=5432
|
||||||
|
PG_DATABASE=ervu_journal
|
||||||
|
PG_USER=ervu_journal
|
||||||
|
PG_PASSWORD=ervu_journal
|
||||||
|
|
||||||
|
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
|
||||||
13
config/ervu-object-diff-calc.env
Normal file
13
config/ervu-object-diff-calc.env
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
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
|
||||||
21
config/ervu-object-history-service.env
Normal file
21
config/ervu-object-history-service.env
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
PG_HOST=10.10.31.119
|
||||||
|
PG_PORT=5432
|
||||||
|
PG_DATABASE=ervu_journal
|
||||||
|
PG_USER=ervu_journal
|
||||||
|
PG_PASSWORD=ervu_journal
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
OBJECT_DIFF_CALC_URL=http://ervu-object-diff-calc:8080/
|
||||||
23
config/ervu-person-registry.env
Normal file
23
config/ervu-person-registry.env
Normal file
|
|
@ -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
|
||||||
19
config/ervu-rp-summons-service.env
Normal file
19
config/ervu-rp-summons-service.env
Normal file
|
|
@ -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
|
||||||
19
config/ervu-subpoena-registry.env
Normal file
19
config/ervu-subpoena-registry.env
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
PG_HOST=10.10.31.119
|
||||||
|
PG_PORT=5432
|
||||||
|
PG_DATABASE=ervu_subpoena_registry_local
|
||||||
|
PG_USER=ervu_subpoena_registry
|
||||||
|
PG_PASSWORD=ervu_subpoena_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
|
||||||
2
config/kafdrop.env
Normal file
2
config/kafdrop.env
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
KAFKA_BROKERCONNECT=local-kafka:9094
|
||||||
|
KAFKA_PROPERTIES=c2VjdXJpdHkucHJvdG9jb2w9UExBSU5URVhUDQpzYXNsLm1lY2hhbmlzbT1QTEFJTg0Kc2FzbC5qYWFzLmNvbmZpZz1vcmcuYXBhY2hlLmthZmthLmNvbW1vbi5zZWN1cml0eS5wbGFpbi5QbGFpbkxvZ2luTW9kdWxlIHJlcXVpcmVkIHVzZXJuYW1lPSd1c2VyMicgcGFzc3dvcmQ9J0JsZmk5ZDJPRkcnOw==
|
||||||
23
config/kafka.env
Normal file
23
config/kafka.env
Normal file
|
|
@ -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
|
||||||
3
config/kafka.properties
Normal file
3
config/kafka.properties
Normal file
|
|
@ -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';
|
||||||
|
|
@ -17,11 +17,12 @@ ESIA_REDIRECT_URL=http://localhost:8080/
|
||||||
SIGN_URL=https://ervu-sign-dev.k8s.micord.ru/sign
|
SIGN_URL=https://ervu-sign-dev.k8s.micord.ru/sign
|
||||||
SIGN_VERIFY_URL=https://ervu-sign-dev.k8s.micord.ru/verify
|
SIGN_VERIFY_URL=https://ervu-sign-dev.k8s.micord.ru/verify
|
||||||
|
|
||||||
ERVU_KAFKA_BOOTSTRAP_SERVERS=local-kafka:9094
|
KAFKA_HOSTS=local-kafka:9094
|
||||||
ERVU_KAFKA_USERNAME=user2
|
KAFKA_USER=user2
|
||||||
ERVU_KAFKA_PASSWORD=Blfi9d2OFG
|
KAFKA_PASS=Blfi9d2OFG
|
||||||
ERVU_KAFKA_SASL_MECHANISM=PLAIN
|
KAFKA_AUTH_SASL_MECH=PLAIN
|
||||||
ERVU_KAFKA_SECURITY_PROTOCOL=PLAINTEXT
|
KAFKA_AUTH_SEC_PROTO=PLAINTEXT
|
||||||
|
KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.plain.PlainLoginModule
|
||||||
ERVU_KAFKA_GROUP_ID=ervu-lkrp-fl-new
|
ERVU_KAFKA_GROUP_ID=ervu-lkrp-fl-new
|
||||||
ERVU_KAFKA_REPLY_TOPIC=ervu.lkpr.person.search.response
|
ERVU_KAFKA_REPLY_TOPIC=ervu.lkpr.person.search.response
|
||||||
ERVU_KAFKA_REQUEST_TOPIC=ervu.lkpr.person.search.request
|
ERVU_KAFKA_REQUEST_TOPIC=ervu.lkpr.person.search.request
|
||||||
|
|
@ -33,7 +34,6 @@ ERVU_KAFKA_REGISTRY_EXTRACT_EMPTY_REQUEST_TOPIC=ervu.extract.empty.request
|
||||||
ERVU_KAFKA_REGISTRY_EXTRACT_REQUEST_TOPIC=ervu.extract.info.request
|
ERVU_KAFKA_REGISTRY_EXTRACT_REQUEST_TOPIC=ervu.extract.info.request
|
||||||
ERVU_KAFKA_REGISTRY_EXTRACT_REPLY_TOPIC=ervu.extract.info.response
|
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_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_AUTH_INFO_CLEAR_CRON=0 0 */1 * * *
|
ESIA_AUTH_INFO_CLEAR_CRON=0 0 */1 * * *
|
||||||
COOKIE_PATH=/fl
|
COOKIE_PATH=/fl
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,28 @@
|
||||||
TZ=Europe/Moscow
|
TZ=Europe/Moscow
|
||||||
|
|
||||||
# App datasource
|
# App datasource
|
||||||
DB_APP_USERNAME=ervu-lkrp-fl
|
DB_APP_USERNAME=ervu_lkrp_fl
|
||||||
DB_APP_PASSWORD=ervu-lkrp-fl
|
DB_APP_PASSWORD=ervu_lkrp_fl
|
||||||
DB_APP_HOST=10.10.31.119
|
DB_APP_HOST=10.10.31.119
|
||||||
DB_APP_PORT=5432
|
DB_APP_PORT=5432
|
||||||
DB_APP_NAME=ervu-lkrp-fl
|
DB_APP_NAME=ervu_lkrp_fl
|
||||||
|
|
||||||
ESIA_SCOPES=snils, fullname, birthdate, id_doc
|
ESIA_SCOPES=snils, fullname, birthdate, id_doc
|
||||||
ESIA_BASE_URI=https://esia-portal1.test.gosuslugi.ru/
|
ESIA_BASE_URI=https://esia-portal1.test.gosuslugi.ru/
|
||||||
|
ESIA_BASE_URI=https://esia-portal1.test.gosuslugi.ru/
|
||||||
ESIA_CLIENT_ID=MNSV89
|
ESIA_CLIENT_ID=MNSV89
|
||||||
ESIA_CLIENT_CERT_HASH=04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD
|
ESIA_CLIENT_CERT_HASH=04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD
|
||||||
ESIA_REDIRECT_URL=https://lkrp-dev.micord.ru/fl/
|
ESIA_REDIRECT_URL=https://lkrp-dev.micord.ru/fl/
|
||||||
ESIA_LOGOUT_REDIRECT_URL=https://lkrp-dev.micord.ru/fl/home.html
|
ESIA_LOGOUT_REDIRECT_URL=https://lkrp-dev.micord.ru/fl/home.html
|
||||||
|
|
||||||
SIGN_URL=https://ervu-sign-dev.k8s.micord.ru/sign
|
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=http://10.10.31.11:32609
|
KAFKA_HOSTS=http://10.10.31.11:32609
|
||||||
ERVU_KAFKA_USERNAME=user1
|
KAFKA_USER=user1
|
||||||
ERVU_KAFKA_PASSWORD=Blfi9d2OFG
|
KAFKA_PASS=Blfi9d2OFG
|
||||||
ERVU_KAFKA_SASL_MECHANISM=SCRAM-SHA-256
|
KAFKA_AUTH_SASL_MECH=SCRAM-SHA-256
|
||||||
ERVU_KAFKA_SECURITY_PROTOCOL=SASL_PLAINTEXT
|
KAFKA_AUTH_SEC_PROTO=SASL_PLAINTEXT
|
||||||
ERVU_KAFKA_GROUP_ID=1
|
ERVU_KAFKA_GROUP_ID=1
|
||||||
ERVU_KAFKA_REPLY_TOPIC=ervu.lkpr.person.search.response
|
ERVU_KAFKA_REPLY_TOPIC=ervu.lkpr.person.search.response
|
||||||
ERVU_KAFKA_REQUEST_TOPIC=ervu.lkpr.person.search.request
|
ERVU_KAFKA_REQUEST_TOPIC=ervu.lkpr.person.search.request
|
||||||
|
|
@ -32,7 +34,7 @@ ERVU_KAFKA_REGISTRY_EXTRACT_EMPTY_REQUEST_TOPIC=ervu.extract.empty.request
|
||||||
ERVU_KAFKA_REGISTRY_EXTRACT_REQUEST_TOPIC=ervu.extract.info.request
|
ERVU_KAFKA_REGISTRY_EXTRACT_REQUEST_TOPIC=ervu.extract.info.request
|
||||||
ERVU_KAFKA_REGISTRY_EXTRACT_REPLY_TOPIC=ervu.extract.info.response
|
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_EXTRACT_HEADER_CLASS=request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3
|
||||||
ERVU_KAFKA_DOC_LOGIN_MODULE=org.apache.kafka.common.security.scram.ScramLoginModule
|
KAFKA_AUTH_SASL_MODULE=org.apache.kafka.common.security.scram.ScramLoginModule
|
||||||
AUDIT_KAFKA_AUTHORIZATION_TOPIC=ervu.lkrp.auth.events
|
AUDIT_KAFKA_AUTHORIZATION_TOPIC=ervu.lkrp.auth.events
|
||||||
AUDIT_KAFKA_ACTION_TOPIC=ervu.lkrp.action.events
|
AUDIT_KAFKA_ACTION_TOPIC=ervu.lkrp.action.events
|
||||||
AUDIT_KAFKA_FILE_DOWNLOAD_TOPIC=ervu.lkrp.import.file
|
AUDIT_KAFKA_FILE_DOWNLOAD_TOPIC=ervu.lkrp.import.file
|
||||||
|
|
|
||||||
15
config/printer.env
Normal file
15
config/printer.env
Normal file
|
|
@ -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
|
||||||
|
|
@ -56,22 +56,23 @@
|
||||||
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
|
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
|
||||||
<property name="esia.scopes" value="snils, fullname, birthdate, id_doc"/>
|
<property name="esia.scopes" value="snils, fullname, birthdate, id_doc"/>
|
||||||
<property name="esia.base.uri" value="https://esia-portal1.test.gosuslugi.ru/"/>
|
<property name="esia.base.uri" value="https://esia-portal1.test.gosuslugi.ru/"/>
|
||||||
|
<property name="esia.issuer.url" value="http://esia-portal1.test.gosuslugi.ru/"/>
|
||||||
<property name="esia.client.id" value="MNSV89"/>
|
<property name="esia.client.id" value="MNSV89"/>
|
||||||
<property name="esia.redirect.url" value="https://lkrp.micord.ru"/>
|
<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="sign.url" value="https://ervu-sign-dev.k8s.micord.ru/sign"/>
|
||||||
<property name="esia.client.cert.hash" value="04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD"/>
|
<property name="esia.client.cert.hash" value="04508B4B0B58776A954A0E15F574B4E58799D74C61EE020B3330716C203E3BDD"/>
|
||||||
<property name="bpmn.enable" value="false"/>
|
<property name="bpmn.enable" value="false"/>
|
||||||
<property name="ervu.kafka.bootstrap.servers" value="localhost:9092"/>
|
<property name="kafka.hosts" value="localhost:9092"/>
|
||||||
<property name="ervu.kafka.reply.topic" value="ervu.lkpr.person.search.response"/>
|
<property name="ervu.kafka.reply.topic" value="ervu.lkpr.person.search.response"/>
|
||||||
<property name="ervu.kafka.group.id" value="1"/>
|
<property name="ervu.kafka.group.id" value="1"/>
|
||||||
<property name="ervu.kafka.request.topic" value="ervu.lkpr.person.search.request"/>
|
<property name="ervu.kafka.request.topic" value="ervu.lkpr.person.search.request"/>
|
||||||
<property name="ervu.kafka.reply.timeout" value="30"/>
|
<property name="ervu.kafka.reply.timeout" value="30"/>
|
||||||
<property name="bpmn.enable" value="false"/>
|
<property name="bpmn.enable" value="false"/>
|
||||||
<property name="ervu.kafka.security.protocol" value="SASL_PLAINTEXT"/>
|
<property name="kafka.auth_sec_proto" value="SASL_PLAINTEXT"/>
|
||||||
<property name="ervu.kafka.doc.login.module" value="org.apache.kafka.common.security.scram.ScramLoginModule"/>
|
<property name="kafka.auth_sasl_module" value="org.apache.kafka.common.security.scram.ScramLoginModule"/>
|
||||||
<property name="ervu.kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
|
<property name="kafka.auth_sasl_mech" value="SCRAM-SHA-256"/>
|
||||||
<property name="ervu.kafka.username" value="user1"/>
|
<property name="kafka.user" value="user1"/>
|
||||||
<property name="ervu.kafka.password" value="Blfi9d2OFG"/>
|
<property name="kafka.pass" value="Blfi9d2OFG"/>
|
||||||
<property name="ervu.kafka.recruit.request.topic" value="ervu.recruit.info.request"/>
|
<property name="ervu.kafka.recruit.request.topic" value="ervu.recruit.info.request"/>
|
||||||
<property name="ervu.kafka.recruit.reply.topic" value="ervu.recruit.info.response"/>
|
<property name="ervu.kafka.recruit.reply.topic" value="ervu.recruit.info.response"/>
|
||||||
<property name="ervu.kafka.recruit.header.class" value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5"/>
|
<property name="ervu.kafka.recruit.header.class" value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5"/>
|
||||||
|
|
@ -80,6 +81,7 @@
|
||||||
<property name="ervu.kafka.registry.extract.reply.topic" value="ervu.extract.info.response"/>
|
<property name="ervu.kafka.registry.extract.reply.topic" value="ervu.extract.info.response"/>
|
||||||
<property name="ervu.kafka.extract.header.class" value="request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3"/>
|
<property name="ervu.kafka.extract.header.class" value="request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3"/>
|
||||||
<property name="esia.auth.info.clear.cron" value="0 0 */1 * * *"/>
|
<property name="esia.auth.info.clear.cron" value="0 0 */1 * * *"/>
|
||||||
|
<property name="sign.verify.url" value="https://ervu-sign-dev.k8s.micord.ru/verify"/>
|
||||||
<property name="audit.kafka.bootstrap.servers" value="localhost:9092"/>
|
<property name="audit.kafka.bootstrap.servers" value="localhost:9092"/>
|
||||||
<property name="audit.kafka.authorization.topic" value="ervu.lkrp.auth.events"/>
|
<property name="audit.kafka.authorization.topic" value="ervu.lkrp.auth.events"/>
|
||||||
<property name="audit.kafka.file.download.topic" value="ervu.lkrp.import.file"/>
|
<property name="audit.kafka.file.download.topic" value="ervu.lkrp.import.file"/>
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
|
||||||
this work for additional information regarding copyright ownership.
|
|
||||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
||||||
(the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
<tomcat-users xmlns="http://tomcat.apache.org/xml"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
|
|
||||||
version="1.0">
|
|
||||||
<!--
|
|
||||||
By default, no user is included in the "manager-gui" role required
|
|
||||||
to operate the "/manager/html" web application. If you wish to use this app,
|
|
||||||
you must define such a user - the username and password are arbitrary.
|
|
||||||
|
|
||||||
Built-in Tomcat manager roles:
|
|
||||||
- manager-gui - allows access to the HTML GUI and the status pages
|
|
||||||
- manager-script - allows access to the HTTP API and the status pages
|
|
||||||
- manager-jmx - allows access to the JMX proxy and the status pages
|
|
||||||
- manager-status - allows access to the status pages only
|
|
||||||
|
|
||||||
The users below are wrapped in a comment and are therefore ignored. If you
|
|
||||||
wish to configure one or more of these users for use with the manager web
|
|
||||||
application, do not forget to remove the <!.. ..> that surrounds them. You
|
|
||||||
will also need to set the passwords to something appropriate.
|
|
||||||
-->
|
|
||||||
<user username="admin" password="<must-be-changed>" roles="manager-gui"/>
|
|
||||||
</tomcat-users>
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
|
||||||
this work for additional information regarding copyright ownership.
|
|
||||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
||||||
(the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
<Context antiResourceLocking="false" privileged="true" >
|
|
||||||
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
|
|
||||||
sameSiteCookies="strict" />
|
|
||||||
<!--
|
|
||||||
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
|
|
||||||
allow="d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
|
|
||||||
-->
|
|
||||||
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
|
|
||||||
</Context>
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||||
<artifactId>fl</artifactId>
|
<artifactId>fl</artifactId>
|
||||||
<version>1.9.10</version>
|
<version>1.9.11</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||||
|
|
|
||||||
166
docker-compose.yaml
Normal file
166
docker-compose.yaml
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
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-object-diff-calc:
|
||||||
|
container_name: object-diff-calc
|
||||||
|
image: registry-dev.pgs.rtlabs.ru/ervu/ervu-object-diff-calc:0.0.1-sha4142b581
|
||||||
|
env_file:
|
||||||
|
- config/ervu-subpoena-registry.env
|
||||||
|
depends_on:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
ports:
|
||||||
|
- 8080
|
||||||
|
|
||||||
|
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:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
ervu-person-registry:
|
||||||
|
condition: service_started
|
||||||
|
ervu-subpoena-registry:
|
||||||
|
condition: service_started
|
||||||
|
ervu-decision-document-service:
|
||||||
|
condition: service_started
|
||||||
|
ervu-object-history-service:
|
||||||
|
condition: service_started
|
||||||
|
crypto-gateway:
|
||||||
|
condition: service_started
|
||||||
|
printer:
|
||||||
|
condition: service_started
|
||||||
|
ervu-object-diff-calc:
|
||||||
|
condition: service_started
|
||||||
|
|
||||||
|
ervu-subpoena-registry:
|
||||||
|
container_name: subpoena-registry
|
||||||
|
image: registry-dev.pgs.rtlabs.ru/ervu/ervu-subpoena-registry:0.0.1-shacb5d0dbb
|
||||||
|
env_file:
|
||||||
|
- config/ervu-subpoena-registry.env
|
||||||
|
depends_on:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
ervu-decision-document-service:
|
||||||
|
container_name: decision-document-service
|
||||||
|
image: registry-dev.pgs.rtlabs.ru/ervu/ervu-decision-document-service:0.0.1-sha238f27f3
|
||||||
|
env_file:
|
||||||
|
- config/ervu-decision-document-service.env
|
||||||
|
depends_on:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
# ervu-object-history-service uses database, created in this service
|
||||||
|
ervu-journal-service:
|
||||||
|
container_name: journal-service
|
||||||
|
image: registry-dev.pgs.rtlabs.ru/ervu/ervu-journal-service:0.0.1-sha74f87e3c
|
||||||
|
env_file:
|
||||||
|
- config/ervu-journal-service.env
|
||||||
|
depends_on:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
ervu-object-history-service:
|
||||||
|
container_name: object-history-service
|
||||||
|
image: registry-dev.pgs.rtlabs.ru/ervu/ervu-object-history-service:0.0.1-shae5cd29cc
|
||||||
|
env_file:
|
||||||
|
- config/ervu-object-history-service.env
|
||||||
|
depends_on:
|
||||||
|
local-kafka:
|
||||||
|
condition: service_healthy
|
||||||
|
ervu-journal-service:
|
||||||
|
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
|
||||||
105
ervu_lkrp_fl-openapi.yaml
Normal file
105
ervu_lkrp_fl-openapi.yaml
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
openapi: 3.0.3
|
||||||
|
info:
|
||||||
|
title: ervu-lkrp-fl API
|
||||||
|
description: API сервиса ervu-lkrp-fl
|
||||||
|
version: 1.9.1
|
||||||
|
servers:
|
||||||
|
- url: https://fl-lkrp-ervu-test.pgs.rtlabs.ru
|
||||||
|
paths:
|
||||||
|
/esia/auth:
|
||||||
|
get:
|
||||||
|
summary: Получение маркера доступа
|
||||||
|
operationId: esiaAuth
|
||||||
|
description: Получение маркера доступа в обмен на код от ЕСИА и создание внутреннего токена
|
||||||
|
parameters:
|
||||||
|
- name: code
|
||||||
|
in: query
|
||||||
|
required: true
|
||||||
|
description: Код, присланный ЕСИА после успешной авторизации
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Authentication successful
|
||||||
|
/esia/person:
|
||||||
|
get:
|
||||||
|
summary: Получение информации о пользователе
|
||||||
|
operationId: getPersonModel
|
||||||
|
description: Получение информации о пользователе ЕСИА
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
/esia/refresh:
|
||||||
|
post:
|
||||||
|
summary: Обновление токена
|
||||||
|
operationId: refreshToken
|
||||||
|
description: Обновление токена
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
/esia/url:
|
||||||
|
get:
|
||||||
|
summary: Получение URL ЕСИА
|
||||||
|
operationId: getEsiaUrl
|
||||||
|
description: Получение URL ЕСИА
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
/esia/userfullname:
|
||||||
|
get:
|
||||||
|
summary: Получение полного имени пользователя
|
||||||
|
operationId: getUserFullname
|
||||||
|
description: Получение полного имени пользователя ЕСИА
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
/extract/{formatRegistry}:
|
||||||
|
get:
|
||||||
|
summary: Получение выписки
|
||||||
|
operationId: getExtract
|
||||||
|
description: Получение выписки из реестров повесток и воинского учета
|
||||||
|
parameters:
|
||||||
|
- name: formatRegistry
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
description: Формат выписки (1 - по воинскому учету; 2 - по повесткам)
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
headers:
|
||||||
|
Content-Disposition:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: attachment; filename*=UTF-8''encodedfilename.zip
|
||||||
|
content:
|
||||||
|
application/octet-stream:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
"204":
|
||||||
|
description: No Content
|
||||||
|
/recruit:
|
||||||
|
get:
|
||||||
|
summary: Получение информации о повестке, временных мерах и воинскому учету
|
||||||
|
operationId: getData
|
||||||
|
description: Получение информации о повестке, временных мерах и воинскому учету
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
6
frontend/package-lock.json
generated
6
frontend/package-lock.json
generated
|
|
@ -1748,9 +1748,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@webbpm/base-package": {
|
"@webbpm/base-package": {
|
||||||
"version": "3.187.4",
|
"version": "3.192.4",
|
||||||
"resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.187.4.tgz",
|
"resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.192.4.tgz",
|
||||||
"integrity": "sha512-2MrVersJ+No7/DMDxJPuBXGoy3NmLNPtTsa4Ua0kooZmR1er7w7YnrIUtkakEXrWSODt0ki7XB9w3f1RFVAGtg==",
|
"integrity": "sha512-x2SFa7O/aUf4fyfiHrJMVuQZAMMOuQoqHuuVJiuBUI3nLTfUmdb+Pnqu+nCcKc+qahT6PYzzJ0t0Wub3bw/JGQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "^1.9.0"
|
"tslib": "^1.9.0"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
"@angular/platform-browser-dynamic": "7.2.15",
|
"@angular/platform-browser-dynamic": "7.2.15",
|
||||||
"@angular/router": "7.2.15",
|
"@angular/router": "7.2.15",
|
||||||
"@ng-bootstrap/ng-bootstrap": "4.2.2-micord.1",
|
"@ng-bootstrap/ng-bootstrap": "4.2.2-micord.1",
|
||||||
"@webbpm/base-package": "3.187.4",
|
"@webbpm/base-package": "3.192.4",
|
||||||
"ag-grid-angular": "29.0.0-micord.4",
|
"ag-grid-angular": "29.0.0-micord.4",
|
||||||
"ag-grid-community": "29.0.0-micord.4",
|
"ag-grid-community": "29.0.0-micord.4",
|
||||||
"angular-calendar": "0.28.28",
|
"angular-calendar": "0.28.28",
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||||
<artifactId>fl</artifactId>
|
<artifactId>fl</artifactId>
|
||||||
<version>1.9.10</version>
|
<version>1.9.11</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,6 @@ export class EsiaErrorDetail {
|
||||||
};
|
};
|
||||||
|
|
||||||
public static getDescription(code: string): string {
|
public static getDescription(code: string): string {
|
||||||
return this.errors[code] || 'Доступ запрещен. Обратитесь к системному администратору. Ошибка ' + code;
|
return this.errors[code] || 'Система временно недоступна. Пожалуйста, повторите попытку позже. Ошибка ЕСИА ' + code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>resources</artifactId>
|
<artifactId>resources</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
<organization>
|
<organization>
|
||||||
<name>Micord</name>
|
<name>Micord</name>
|
||||||
</organization>
|
</organization>
|
||||||
|
|
@ -28,13 +28,13 @@
|
||||||
<jooq.version>3.19.3</jooq.version>
|
<jooq.version>3.19.3</jooq.version>
|
||||||
<jupiter.version>5.10.2</jupiter.version>
|
<jupiter.version>5.10.2</jupiter.version>
|
||||||
<enforcer.manageVersions>true</enforcer.manageVersions>
|
<enforcer.manageVersions>true</enforcer.manageVersions>
|
||||||
<webbpm-platform.version>3.187.4</webbpm-platform.version>
|
<webbpm-platform.version>3.192.4</webbpm-platform.version>
|
||||||
<h2.version>1.4.200</h2.version>
|
<h2.version>1.4.200</h2.version>
|
||||||
<build.timestamp>0226064041</build.timestamp>
|
<build.timestamp>0324074119</build.timestamp>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<junit.platform.version>1.10.0</junit.platform.version>
|
<junit.platform.version>1.10.0</junit.platform.version>
|
||||||
<enforcer.manageExclusions>true</enforcer.manageExclusions>
|
<enforcer.manageExclusions>true</enforcer.manageExclusions>
|
||||||
<revision>3.187.4</revision>
|
<revision>3.192.4</revision>
|
||||||
<metadata.ts.filename>typescript.metadata.json</metadata.ts.filename>
|
<metadata.ts.filename>typescript.metadata.json</metadata.ts.filename>
|
||||||
<package.repository.url>https://repo.micord.ru</package.repository.url>
|
<package.repository.url>https://repo.micord.ru</package.repository.url>
|
||||||
<maven.build.timestamp.format>MMddHHmmss</maven.build.timestamp.format>
|
<maven.build.timestamp.format>MMddHHmmss</maven.build.timestamp.format>
|
||||||
|
|
@ -47,19 +47,19 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>converters</artifactId>
|
<artifactId>converters</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>backend</artifactId>
|
<artifactId>backend</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>frontend</artifactId>
|
<artifactId>frontend</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>Образец внешней ссылки: <code>https://www.wildberries.ru/catalog/${sku}/detail.aspx</code></li>
|
<li>Образец внешней ссылки: <code>https://www.wildberries.ru/catalog/${sku}/detail.aspx</code></li>
|
||||||
<li>Образец внутренней ссылки: <code>products/ru.cg.webbpm.packages.base:resources:jar:3.187.4</code></li>
|
<li>Образец внутренней ссылки: <code>products/ru.cg.webbpm.packages.base:resources:jar:3.192.4</code></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,17 @@
|
||||||
<description>Base webbpm package</description>
|
<description>Base webbpm package</description>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>resources</artifactId>
|
<artifactId>resources</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
|
|
||||||
<backendModule>
|
<backendModule>
|
||||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||||
<artifactId>backend</artifactId>
|
<artifactId>backend</artifactId>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
</backendModule>
|
</backendModule>
|
||||||
<frontendModule>
|
<frontendModule>
|
||||||
<packageName>@webbpm/base-package</packageName>
|
<packageName>@webbpm/base-package</packageName>
|
||||||
<version>3.187.4</version>
|
<version>3.192.4</version>
|
||||||
</frontendModule>
|
</frontendModule>
|
||||||
</packageInfo>
|
</packageInfo>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка.html</documentation>
|
<documentation>component/buttons/Кнопка.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_отмены.html</documentation>
|
<documentation>component/buttons/Кнопка_отмены.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_очистки_фильтра.html</documentation>
|
<documentation>component/buttons/Кнопка_очистки_фильтра.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_удаления.html</documentation>
|
<documentation>component/buttons/Кнопка_удаления.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_загрузки.html</documentation>
|
<documentation>component/buttons/Кнопка_загрузки.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_вызова_ошибки.html</documentation>
|
<documentation>component/buttons/Кнопка_вызова_ошибки.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<documentation>component/buttons/Кнопка_выполнения_бизнес-процесса.html</documentation>
|
<documentation>component/buttons/Кнопка_выполнения_бизнес-процесса.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_выполнения_SQL.html</documentation>
|
<documentation>component/buttons/Кнопка_выполнения_SQL.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_для_фильтрации.html</documentation>
|
<documentation>component/buttons/Кнопка_для_фильтрации.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_навигации.html</documentation>
|
<documentation>component/buttons/Кнопка_навигации.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_сохранения.html</documentation>
|
<documentation>component/buttons/Кнопка_сохранения.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_выбора.html</documentation>
|
<documentation>component/buttons/Кнопка_выбора.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_подписи.html</documentation>
|
<documentation>component/buttons/Кнопка_подписи.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/Кнопка_запуска_бизнес-процесса.html</documentation>
|
<documentation>component/buttons/Кнопка_запуска_бизнес-процесса.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/reporting/Кнопка_печати_из_графа_сущности.html</documentation>
|
<documentation>component/buttons/reporting/Кнопка_печати_из_графа_сущности.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/buttons/reporting/Кнопка_печати_отчета_из_формы.html</documentation>
|
<documentation>component/buttons/reporting/Кнопка_печати_отчета_из_формы.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Сворачиваемая_панель.html</documentation>
|
<documentation>component/containers/Сворачиваемая_панель.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Диалог.html</documentation>
|
<documentation>component/containers/Диалог.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Контейнер_с_кнопками.html</documentation>
|
<documentation>component/containers/Контейнер_с_кнопками.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Группа_полей.html</documentation>
|
<documentation>component/containers/Группа_полей.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Набор_фильтров.html</documentation>
|
<documentation>component/containers/Набор_фильтров.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Форма.html</documentation>
|
<documentation>component/containers/Форма.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Горизонтальный_контейнер.html</documentation>
|
<documentation>component/containers/Горизонтальный_контейнер.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Контейнер_вкладок.html</documentation>
|
<documentation>component/containers/Контейнер_вкладок.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Вкладка.html</documentation>
|
<documentation>component/containers/Вкладка.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Вертикальный_контейнер.html</documentation>
|
<documentation>component/containers/Вертикальный_контейнер.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/containers/Окно.html</documentation>
|
<documentation>component/containers/Окно.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/editable-grids/EditableGrid.html</documentation>
|
<documentation>component/editable-grids/EditableGrid.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/autocomplete</localization>
|
<localization>META-INF/components/localization/editable-grids/autocomplete</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/check-box</localization>
|
<localization>META-INF/components/localization/editable-grids/check-box</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/combo-box</localization>
|
<localization>META-INF/components/localization/editable-grids/combo-box</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/date-time-picker</localization>
|
<localization>META-INF/components/localization/editable-grids/date-time-picker</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/money-field</localization>
|
<localization>META-INF/components/localization/editable-grids/money-field</localization>
|
||||||
<internal>true</internal>
|
<internal>true</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/number-field</localization>
|
<localization>META-INF/components/localization/editable-grids/number-field</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
||||||
<internal>true</internal>
|
<internal>true</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/read-only</localization>
|
<localization>META-INF/components/localization/editable-grids/read-only</localization>
|
||||||
<internal>true</internal>
|
<internal>true</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
<category>editable-grids</category>
|
<category>editable-grids</category>
|
||||||
<internal>true</internal>
|
<internal>true</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>Статичный_выпадающий_список_колонки_таблицы.html</documentation>
|
<documentation>Статичный_выпадающий_список_колонки_таблицы.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/text-area</localization>
|
<localization>META-INF/components/localization/editable-grids/text-area</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/text-field</localization>
|
<localization>META-INF/components/localization/editable-grids/text-field</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
<localization>META-INF/components/localization/editable-grids/time-picker</localization>
|
<localization>META-INF/components/localization/editable-grids/time-picker</localization>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/ФИАС.html</documentation>
|
<documentation>component/fields/ФИАС.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Поле_ввода_с_подбором_значения.html</documentation>
|
<documentation>component/fields/Поле_ввода_с_подбором_значения.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Флаг.html</documentation>
|
<documentation>component/fields/Флаг.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Выпадающий_список.html</documentation>
|
<documentation>component/fields/Выпадающий_список.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Дата.html</documentation>
|
<documentation>component/fields/Дата.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/EditableOneToMany.html</documentation>
|
<documentation>component/fields/EditableOneToMany.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Файл.html</documentation>
|
<documentation>component/fields/Файл.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/Файл.html</documentation>
|
<documentation>component/fields/Файл.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
<documentation>component/fields/ManyToMany.html</documentation>
|
<documentation>component/fields/ManyToMany.html</documentation>
|
||||||
<internal>false</internal>
|
<internal>false</internal>
|
||||||
<versions>
|
<versions>
|
||||||
<studioVersion>3.187.4</studioVersion>
|
<studioVersion>3.192.4</studioVersion>
|
||||||
<packageVersions>
|
<packageVersions>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||||
<value>3.187.4</value>
|
<value>3.192.4</value>
|
||||||
</entry>
|
</entry>
|
||||||
</packageVersions>
|
</packageVersions>
|
||||||
</versions>
|
</versions>
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue