Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions scripts/aws/cfn/microservice-dev-cfg.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
"SelfcarePgRateLimiterMillis": "1000",
"SelfcarePgRateLimiterNRequests": "20",
"SelfcarePgRateLimiterTimeoutMillis": "10000",
"CacheExpireMinutes": "600",
"CacheExpireMinutes": "0",
"CacheMaxSize": "100000",
"MinTasksNumber": "2",
"MaxTasksNumber": "3",
"AutoscalingThreshold": "51650",
"CloudWatchMetricCron": "*/10 * * * * *",
"CpuValue": "2048",
"MemoryAmount": "4GB"
"MemoryAmount": "4GB",
"HttpWireLogging": "TRACE",
"HttpWiretapEnabled": "true"
}
}
12 changes: 12 additions & 0 deletions scripts/aws/cfn/microservice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,16 @@ Parameters:
Type: String
Description: Cron for which you send the custom metric for PDV to CloudWatch

HttpWireLogging:
Type: String
Default: 'ERROR'
Description: netty logging level

HttpWiretapEnabled:
Type: String
Default: 'false'
Description: netty wiretap enabled

# Log group parameters
EcsLogGroup:
Type: String
Expand Down Expand Up @@ -257,6 +267,8 @@ Resources:
ContainerEnvEntry12: !Sub 'RESILIENCE4J_RATELIMITER_INSTANCES_SELC_RATE_LIMITER_LIMIT_FOR_PERIOD=${SelfcarePgRateLimiterNRequests}'
ContainerEnvEntry13: !Sub 'RESILIENCE4J_RATELIMITER_INSTANCES_SELC_RATE_LIMITER_TIMEOUT_DURATION=${SelfcarePgRateLimiterTimeoutMillis}'
ContainerEnvEntry14: !Sub 'PN_DATA_VAULT_CLOUDWATCH_METRIC_CRON=${CloudWatchMetricCron}'
ContainerEnvEntry15: !Sub 'LOGGING_LEVEL_REACTOR_NETTY_HTTP_CLIENT=${HttpWireLogging}'
ContainerEnvEntry16: !Sub 'PN_DATA_VAULT_WIRETAP_ENABLED=${HttpWiretapEnabled}'
ContainerSecret1: !Sub 'PN_DATA_VAULT_TOKENIZER_API_KEY_PF=arn:${AWS::Partition}:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:pn-PersonalDataVault-Secrets:TokenizerApiKeyForPF:AWSCURRENT:'
ContainerSecret3: !Sub 'PN_DATA_VAULT_USERREGISTRY_API_KEY_PF=arn:${AWS::Partition}:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:pn-PersonalDataVault-Secrets:UserRegistryApiKeyForPF:AWSCURRENT:'
ContainerSecret4: !Sub 'PN_DATA_VAULT_SELFCAREPG_API_KEY_PG=arn:${AWS::Partition}:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:pn-PersonalDataVault-Secrets:SelfcareApiKeyForPG:AWSCURRENT:'
Expand Down
31 changes: 29 additions & 2 deletions src/main/java/it/pagopa/pn/datavault/config/MsClientConfig.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package it.pagopa.pn.datavault.config;

import io.netty.handler.logging.LogLevel;
import it.pagopa.pn.commons.pnclients.CommonBaseClient;
import it.pagopa.pn.datavault.generated.openapi.msclient.selfcarepg.v1.ApiClient;
import it.pagopa.pn.datavault.generated.openapi.msclient.selfcarepg.v1.api.InstitutionsApi;
import it.pagopa.pn.datavault.generated.openapi.msclient.selfcarepg.v1.api.InstitutionsPnpgApi;
import it.pagopa.pn.datavault.generated.openapi.msclient.tokenizer.v1.api.TokenApi;
import it.pagopa.pn.datavault.generated.openapi.msclient.userregistry.v1.api.UserApi;
import it.pagopa.pn.datavault.middleware.wsclient.common.BaseClient;
import it.pagopa.pn.datavault.middleware.wsclient.common.OcpBaseClient;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.netty.http.client.HttpClient;
import reactor.netty.transport.logging.AdvancedByteBufFormat;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MsClientConfig {
Expand All @@ -34,7 +39,10 @@ InstitutionsPnpgApi institutionsPnpgApi(PnDatavaultConfig pnDatavaultConfig) {
}

@Configuration
static class BaseClients extends BaseClient {
static class BaseClients extends CommonBaseClient {

@Autowired
private PnDatavaultConfig dataVaultConfiguration;

@Bean
UserApi userClientPF(PnDatavaultConfig pnDatavaultConfig) {
Expand All @@ -50,5 +58,24 @@ TokenApi tokenApiPF(PnDatavaultConfig pnDatavaultConfig) {
return new TokenApi(apiClient);
}

private static final String HEADER_API_KEY = "x-api-key";

protected WebClient initWebClient(WebClient.Builder builder, String apiKey){

return super.enrichWithDefaultProps( builder )
//return super.enrichBuilder(builder)
.defaultHeader(HEADER_API_KEY, apiKey)
.build();
}

@Override
protected HttpClient buildHttpClient() {
HttpClient httpClient = super.buildHttpClient();
if( dataVaultConfiguration.isWiretapEnabled() ) {
// httpClient = httpClient.wiretap( true );
httpClient = httpClient.wiretap("reactor.netty.http.client.HttpClient", LogLevel.TRACE, AdvancedByteBufFormat.TEXTUAL);
}
return httpClient;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ public class PnDatavaultConfig {
private String userregistryApiKeyPf;
private String selfcarepgApiKeyPg;


private boolean wiretapEnabled;

private int cacheExpireAfterMinutes;
private int cacheMaxSize;

Expand Down