Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into update-for-uat-release
Browse files Browse the repository at this point in the history
# Conflicts:
#	helm/Chart.yaml
#	helm/values-dev.yaml
#	helm/values-prod.yaml
#	helm/values-uat.yaml
#	openapi/openapi.json
#	pom.xml
  • Loading branch information
alessio-cialini committed Oct 2, 2024
2 parents 9471cc6 + 879119a commit b4f5046
Show file tree
Hide file tree
Showing 18 changed files with 98 additions and 60 deletions.
4 changes: 2 additions & 2 deletions helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: pagopa-payment-options
description: Microservice that handles services for payment options
type: application
version: 0.71.0
appVersion: 0.4.2-2-update-for-uat-release
version: 0.82.0
appVersion: 0.4.2-13-PPANTT-131-feat-add-integration-tests
dependencies:
- name: microservice-chart
version: 5.9.0
Expand Down
6 changes: 4 additions & 2 deletions helm/values-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "payment-options"
image:
repository: ghcr.io/pagopa/pagopa-payment-options-service
tag: "0.4.2-2-update-for-uat-release"
tag: "0.4.2-13-PPANTT-131-feat-add-integration-tests"
pullPolicy: Always
livenessProbe:
httpGet:
Expand Down Expand Up @@ -76,9 +76,11 @@ microservice-chart:
APP_NAME: "payment-options-service"
APP_ENVIRONMENT: "dev"
WEBSITE_SITE_NAME: 'payment-options-service' # required to show cloud role name in application insights
APP_LOGGING_LEVEL: 'DEBUG'
APP_LOG_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
APICONFIG_CACHE_URL: 'https://api.dev.platform.pagopa.it/api-config-cache/p/v1'
EC_APIM_FORWARDER_ENDPOINT: 'https://api.dev.platform.pagopa.it'
EC_APIM_PATH: '/pagopa-node-forwarder/api/v1'
CACHE_EVT_HOST: 'pagopa-d-weu-core-evh-ns04.servicebus.windows.net:9093'
CACHE_EVT_TOPIC: 'nodo-dei-pagamenti-cache'
VERIFY_KO_EVT_HOST: 'pagopa-d-weu-core-evh-ns03.servicebus.windows.net:9093'
Expand Down
4 changes: 3 additions & 1 deletion helm/values-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "payment-options"
image:
repository: ghcr.io/pagopa/pagopa-payment-options-service
tag: "0.4.2-2-update-for-uat-release"
tag: "0.4.2-13-PPANTT-131-feat-add-integration-tests"
pullPolicy: Always
livenessProbe:
httpGet:
Expand Down Expand Up @@ -84,6 +84,8 @@ microservice-chart:
APP_LOGGING_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
APICONFIG_CACHE_URL: 'https://api.platform.pagopa.it/api-config-cache/p/v1'
EC_APIM_FORWARDER_ENDPOINT: 'https://api.platform.pagopa.it'
EC_APIM_PATH: '/pagopa-node-forwarder/api/v1'
CACHE_EVT_HOST: 'pagopa-p-weu-core-evh-ns04.servicebus.windows.net:9093'
CACHE_EVT_TOPIC: 'nodo-dei-pagamenti-cache'
VERIFY_KO_EVT_HOST: 'pagopa-p-weu-core-evh-ns03.servicebus.windows.net:9093'
Expand Down
4 changes: 3 additions & 1 deletion helm/values-uat.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "payment-options"
image:
repository: ghcr.io/pagopa/pagopa-payment-options-service
tag: "0.4.2-2-update-for-uat-release"
tag: "0.4.2-13-PPANTT-131-feat-add-integration-tests"
pullPolicy: Always
livenessProbe:
httpGet:
Expand Down Expand Up @@ -84,6 +84,8 @@ microservice-chart:
APP_LOGGING_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
APICONFIG_CACHE_URL: 'https://api.uat.platform.pagopa.it/api-config-cache/p/v1'
EC_APIM_FORWARDER_ENDPOINT: 'https://api.uat.platform.pagopa.it'
EC_APIM_PATH: '/pagopa-node-forwarder/api/v1'
CACHE_EVT_HOST: 'pagopa-u-weu-core-evh-ns04.servicebus.windows.net:9093'
CACHE_EVT_TOPIC: 'nodo-dei-pagamenti-cache'
VERIFY_KO_EVT_HOST: 'pagopa-u-weu-core-evh-ns03.servicebus.windows.net:9093'
Expand Down
5 changes: 3 additions & 2 deletions integration-test/src/config/.env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ SINGLE_AND_MANY_OPT_NOTICE_NUMBER=311111111111111112
SINGLE_AND_MULTI_OPT_NOTICE_NUMBER=311111111111111116
SINGLE_AND_CO_OPT_NOTICE_NUMBER=311111111112222225
INVALID_NOTICE_NUMBER=111111111111111111
DISABLED_STATION_NOTICE_NUMBER=313111111111111111
DISABLED_STATION_NOTICE_NUMBER=399111111111111111
DISABLED_STATION_ODP_NOTICE_NUMBER=312111111111111111
MISSING_STATION_NOTICE_NUMBER=399111111111111111
ERROR_STATION_NOTICE_NUMBER=311199999999999999
WRONG_STATION_NOTICE_NUMBER=311111111119999902
UNAUTHORIZED_PSP=AAAAAAAAA
VALID_PSP=99999000001

Expand Down
5 changes: 3 additions & 2 deletions integration-test/src/config/.env.local
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ SINGLE_AND_MANY_OPT_NOTICE_NUMBER=311111111111111112
SINGLE_AND_MULTI_OPT_NOTICE_NUMBER=311111111111111116
SINGLE_AND_CO_OPT_NOTICE_NUMBER=311111111112222225
INVALID_NOTICE_NUMBER=111111111111111111
DISABLED_STATION_NOTICE_NUMBER=313111111111111111
DISABLED_STATION_NOTICE_NUMBER=399111111111111111
DISABLED_STATION_ODP_NOTICE_NUMBER=312111111111111111
MISSING_STATION_NOTICE_NUMBER=399111111111111111
ERROR_STATION_NOTICE_NUMBER=311199999999999999
WRONG_STATION_NOTICE_NUMBER=311111111119999902
UNAUTHORIZED_PSP=AAAAAAAAA
VALID_PSP=99999000001

Expand Down
5 changes: 3 additions & 2 deletions integration-test/src/config/.env.uat
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ SINGLE_AND_MANY_OPT_NOTICE_NUMBER=311111111111111112
SINGLE_AND_MULTI_OPT_NOTICE_NUMBER=311111111111111116
SINGLE_AND_CO_OPT_NOTICE_NUMBER=311111111112222225
INVALID_NOTICE_NUMBER=111111111111111111
DISABLED_STATION_NOTICE_NUMBER=313111111111111111
DISABLED_STATION_NOTICE_NUMBER=399111111111111111
DISABLED_STATION_ODP_NOTICE_NUMBER=312111111111111111
MISSING_STATION_NOTICE_NUMBER=399111111111111111
ERROR_STATION_NOTICE_NUMBER=311199999999999999
WRONG_STATION_NOTICE_NUMBER=311111111119999902
UNAUTHORIZED_PSP=AAAAAAAAA
VALID_PSP=99999000001

Expand Down
34 changes: 17 additions & 17 deletions integration-test/src/features/get_payment_options.feature
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,6 @@ Feature: Get Payment Options
Then response has a 400 Http status
And has error code "ODP-015"

Scenario: Station unavailable for provided noticeNumber
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "missing" and idPsp "valid"
Then response has a 404 Http status
And has error code "ODP-009"

Scenario: Station unavailable for provided fiscalCode
When an Http GET request is sent to recover payment options for taxCode "invalid" with noticeNumber "valid" and idPsp "valid"
Then response has a 404 Http status
And has error code "ODP-009"

Scenario: Station is disabled
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "disabled" and idPsp "valid"
Then response has a 400 Http status
Expand All @@ -33,26 +23,36 @@ Feature: Get Payment Options
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "single" and idPsp "valid"
Then response has a 200 Http status
And payments options has size 1
And payments option n 0 has 1 installments
And payments option n 1 has 1 installments

Scenario: Retrieve Payment Options (Opzione Unica + Unico Piano Rateale)
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "singleAndMultiple" and idPsp "valid"
Then response has a 200 Http status
And payments options has size 2
And payments option n 0 has 1 installments
And payments option n 1 has 3 installments
And payments option n 1 has 1 installments
And payments option n 2 has 3 installments

Scenario: Retrieve Payment Options (Opzione Unica + Molteplici Piani Rateali)
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "singleAndManyMultiples" and idPsp "valid"
Then response has a 200 Http status
And payments options has size 3
And payments option n 0 has 1 installments
And payments option n 1 has 3 installments
And payments option n 2 has 5 installments
And payments option n 1 has 1 installments
And payments option n 2 has 3 installments
And payments option n 3 has 5 installments

Scenario: Retrieve Payment Options (Co-Obbligati)
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "co-oblidged" and idPsp "valid"
Then response has a 200 Http status
And payments options has size 2
And payments option n 0 has 1 installments
And payments option n 1 has 1 installments
And payments option n 2 has 1 installments

Scenario: PAA Wrong System Error
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "wrong" and idPsp "valid"
Then response has a 400 Http status
And has error code "PAA_STAZIONE_INT_ERRATA"

Scenario: PAA System Error
When an Http GET request is sent to recover payment options for taxCode "valid" with noticeNumber "error" and idPsp "valid"
Then response has a 400 Http status
And has error code "PAA_SYSTEM_ERROR"
12 changes: 12 additions & 0 deletions integration-test/src/step_definitions/payment_options_step.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ const invalidStationNoticeNumber = process.env.INVALID_NOTICE_NUMBER;
const disabledStationNoticeNumber = process.env.DISABLED_STATION_NOTICE_NUMBER;
const disabledOdpStationNoticeNumber = process.env.DISABLED_STATION_ODP_NOTICE_NUMBER;
const missingStationNoticeNumber = process.env.MISSING_STATION_NOTICE_NUMBER;
const errorNoticeNumber = process.env.ERROR_STATION_NOTICE_NUMBER;
const wrongNoticeNumber = process.env.WRONG_STATION_NOTICE_NUMBER;
const invalidPsp = process.env.UNAUTHORIZED_PSP;
const validPsp = process.env.VALID_PSP;

Expand Down Expand Up @@ -70,6 +72,15 @@ When('an Http GET request is sent to recover payment options for taxCode {string
case "co-oblidged":
selectedNoticeNumber = coOptNoticeNumber;
break;
case "wrong":
selectedNoticeNumber = wrongNoticeNumber;
break;
case "disabled":
selectedNoticeNumber = disabledStationNoticeNumber;
break;
case "error":
selectedNoticeNumber = errorNoticeNumber;
break;
}

switch (idPsp) {
Expand All @@ -90,6 +101,7 @@ Then('payments options has size {int}', function (expectedSize) {
});

Then('payments option n {int} has {int} installments', function (i, expectedSize) {
console.log(this.response?.data?.paymentOptions);
assert.strictEqual(this.response?.data?.paymentOptions[i - 1].installments.length, expectedSize);
});

Expand Down
4 changes: 2 additions & 2 deletions openapi/openapi.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"openapi": "3.0.3",
"info": {
"title": "PagoPa Payment Options",
"title": "PagoPa Payment Options (TEST)",
"description": "PagoPa Payment Options service \n ### APP ERROR CODES ### \n\n\n <details><summary>Details</summary>\n **NAME** | **HTTP STATUS CODE** | **DESCRIPTION** \n- | - | - \n **ODP-001** | *Bad Request* | ODP-SINTASSI. Errore riportato in caso di errore di sintassi nel contenuto della richiesta verso ODP\n **ODP-002** | *Not Found* | ODP_PSP_SCONOSCIUTO. Errore riportato in caso non sia presente fra i dati ottenuti da config-cache un psp coincidente con l’id fornito in input\n **ODP-003** | *Bad Request* | ODP_PSP_DISABILITATO. Errore riportato in caso il psp coincidente con l’id fornito in input risulti disabilitato\n **ODP-004** | *Not Found* | ODP_INTERMEDIARIO_PSP_SCONOSCIUTO. Errore riportato in caso il broker psp coincidente con i dati forniti in input non sia presente nei dati ottenuti da config-cache\n **ODP-005** | *Bad Request* | ODP_INTERMEDIARIO_PSP_DISABILITATO. Errore riportato in caso il broker psp coincidente con l’id fornito in input risulti disabilitato\n **ODP-006** | *Unauthorized* | ODP_AUTENTICAZIONE. Errore di autenticazione rispetto ai dati forniti\n **ODP-007** | *Forbidden* | ODP_AUTORIZZAZIONE. Errore di autorizzazione rispetto ai dati forniti\n **ODP-008** | *Bad Request* | ODP_SEMANTICA. Errore fornito in caso della presenza di casi d’invalidità semantica nei dati del flusso di verifica\n **ODP-009** | *Not Found* | ODP_STAZIONE_INT_PA_SCONOSCIUTA. Errore forninca in caso di assenza associazione stazione e PA\n **ODP-0099** | *Bad Request* | ODP_STAZIONE_INT_PA_DISABILITATA. Errore riportato in caso la stazione coincidente con l’id fornito in input risulti disabilitato\n **ODP-010** | *Service Unavailable* | ODP_STAZIONE_INT_PA_IRRAGGIUNGIBILE. Errore fornito in caso d’irraggiungibilità della stazione\n **ODP-011** | *Bad Request* | ODP_STAZIONE_INT_PA_SERVIZIO_NON_ATTIVO. Errore fornito in caso di servizio non attivo\n **ODP-012** | *Internal Server Error* | ODP_STAZIONE_INT_PA_TIMEOUT. Errore fornito in caso di timeout della stazione\n **ODP-013** | *Internal Server Error* | ODP_ERRORE_EMESSO_DA_PAA. Errore fornito in caso di errori da PAA\n **ODP-014** | *Bad Request* | ODP_STAZIONE_INT_PA_ERRORE_RESPONSE. Errore fornito in caso di risposta KO dalla stazione\n **ODP-015** | *Bad Request* | ODP_PSP_NAV_NOT_NMU. Errore fornito nel caso in cui il nav non sia valido per il flusso OdP\n **ODP-016** | *Bad Request* | ODP_SYSTEM_ERROR Codice d’errore generico\n **ODP-017** | *Internal Server Error* | ODP_SYSTEM_ERROR. Codice d’errore generico\n **ODP-018** | *Bad Request* | ODP_INTERMEDIARIO_PA_DISABILITATO\n **ODP-019** | *Not Found* | ODP_INTERMEDIARIO_PA_SCONOSCIUTO\n **ODP-020** | *Bad Request* | ODP_DOMINIO_DISABILITATO\n **ODP-021** | *Not Found* | ODP_DOMINIO_SCONOSCIUTO \n\n </details> \n",
"termsOfService": "https://www.pagopa.gov.it/",
"version": "0.4.2-2-update-for-uat-release"
"version": "0.4.2-13-PPANTT-131-feat-add-integration-tests"
},
"servers": [
{
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<groupId>it.gov.pagopa</groupId>
<artifactId>payment-options-service</artifactId>
<name>Payment Options Service</name>
<version>0.4.2-2-update-for-uat-release</version>
<version>0.4.2-13-PPANTT-131-feat-add-integration-tests</version>

<properties>
<jacoco.version>0.8.7</jacoco.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import it.gov.pagopa.payment.options.models.ErrorResponse;
import it.gov.pagopa.payment.options.models.clients.creditorInstitution.PaymentOptionsResponse;
import it.gov.pagopa.payment.options.models.enums.AppErrorCodeEnum;
import it.gov.pagopa.payment.options.models.events.odpRe.Properties;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.core.Response;
Expand Down Expand Up @@ -50,16 +51,15 @@ public PaymentOptionsResponse callEcPaymentOptionsVerify(
RestClientBuilder builder =
RestClientBuilder.newBuilder().baseUrl(
new URL(String.format(endpoint, fiscalCode, noticeNumber)));

if (proxyHost != null && proxyPort != null) {
builder = builder.proxyAddress(proxyHost, proxyPort.intValue());
}
CreditorInstitutionRestClientInterface ecRestClientInterface = builder.build(
CreditorInstitutionRestClientInterface.class);

try (Response response = ecRestClientInterface.verifyPaymentOptions(
fiscalCode, noticeNumber,
targetHost, targetPort.intValue(),
targetPath)) {
targetHost, targetPort.intValue(), targetPath)) {

return objectMapper.readValue(
response.readEntity(String.class), PaymentOptionsResponse.class);
Expand All @@ -72,6 +72,7 @@ public PaymentOptionsResponse callEcPaymentOptionsVerify(
} catch (Exception e) {
logger.error("[Payment Options] Unable to call the station due to error: {}",
e.getMessage());
logger.error(e.getMessage(), e);
throw new PaymentOptionsException(
AppErrorCodeEnum.ODP_STAZIONE_INT_PA_IRRAGGIUNGIBILE, e.getMessage());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
package it.gov.pagopa.payment.options.clients;

import it.gov.pagopa.payment.options.models.events.odpRe.Properties;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.HeaderParam;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody;
import org.eclipse.microprofile.rest.client.annotation.ClientHeaderParam;
import org.jboss.resteasy.reactive.PartType;
import org.jboss.resteasy.reactive.RestForm;

/**
* Template for the creditor institution REST client
*/
public interface CreditorInstitutionRestClientInterface {

@GET
@Path("/payment-options/organizations/{fiscal-code}/notices/{notice-number}")
@POST
@Path("/forward")
@ClientHeaderParam(name = "Ocp-Apim-Subscription-Key", value = "${CreditorInstitutionRestClient.ocpSubKey}")
Response verifyPaymentOptions(
@PathParam("fiscal-code") String fiscalCode,
@PathParam("notice-number") String noticeNumber,
@HeaderParam("X-Host-Url") String hostUrl,
@HeaderParam("X-Host-Port") Integer hostPort,
@HeaderParam("X-Host-Path") String hostPath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public class Station {
@JsonProperty("flag_standin")
private Boolean flagStandin = null;

@JsonProperty("verify_payment_option_enabled")
@JsonProperty("is_payment_options_enabled")
private Boolean verifyPaymentOptionEnabled = false;

@JsonProperty("rest_endpoint")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.net.MalformedURLException;
import java.util.Optional;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -24,6 +25,9 @@ public class CreditorInstitutionService {
@ConfigProperty(name = "CreditorInstitutionRestClient.apimEndpoint")
String APIM_FORWARDER_ENDPOINT;

@ConfigProperty(name = "CreditorInstitutionRestClient.apimPath")
Optional<String> APIM_FORWARDER_PATH;

static String PAYMENT_OPTIONS_SERVICE_SUFFIX = "/payment-options/organizations/%s/notices/%s";

@Inject
Expand All @@ -50,8 +54,7 @@ public PaymentOptionsResponse getPaymentOptions(
"[Payment Options] Station not configured to pass through the APIM Forwarder");
}

String endpoint = getEndpoint(station);

String endpoint = getEndpoint(station, APIM_FORWARDER_PATH.orElse(""));

if (station.getRestEndpoint() == null) {
throw new PaymentOptionsException(AppErrorCodeEnum.ODP_SEMANTICA,
Expand All @@ -64,14 +67,14 @@ public PaymentOptionsResponse getPaymentOptions(
try {
String[] verifyEndpointParts =
station.getRestEndpoint().split("/", 4);
targetHost = verifyEndpointParts[0] + verifyEndpointParts[2];
targetHost = verifyEndpointParts[2];
String[] hostSplit = verifyEndpointParts[2].split(":");
targetPort = hostSplit.length > 1 ?
Long.parseLong(hostSplit[1]) :
verifyEndpointParts[0].contains(ProtocolEnum.HTTPS.name().toLowerCase()) ?
443L : 80L;
targetPath = verifyEndpointParts[3].concat(
String.format(PAYMENT_OPTIONS_SERVICE_SUFFIX, fiscalCode, noticeNumber));
String formattedPath = String.format(PAYMENT_OPTIONS_SERVICE_SUFFIX, fiscalCode, noticeNumber);
targetPath = verifyEndpointParts.length > 3 ? verifyEndpointParts[3].concat(formattedPath) : formattedPath;
} catch (Exception e) {
logger.error("[Payment Options] Malformed Target URL: {}", e.getMessage());
throw new PaymentOptionsException(AppErrorCodeEnum.ODP_SEMANTICA, e.getMessage());
Expand All @@ -92,14 +95,15 @@ public PaymentOptionsResponse getPaymentOptions(

}

private static String getEndpoint(Station station) {
private static String getEndpoint(Station station, String apimForwarderPath) {
return (station.getConnection().getProtocol() != null &&
(station.getConnection().getProtocol().equals(ProtocolEnum.HTTPS)) ?
ProtocolEnum.HTTPS.name().toLowerCase() :
station.getConnection().getProtocol().name().toLowerCase()) +
"://" + station.getConnection().getIp() + ":" +
(station.getConnection().getPort() != null ?
String.valueOf(station.getConnection().getPort()) : "80");
String.valueOf(station.getConnection().getPort()) : "80")
.concat(apimForwarderPath);
}

}
2 changes: 2 additions & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ ApiConfigCacheClient.ocpSubKey=${APICONFIG_SUBKEY:}

CreditorInstitutionRestClient.ocpSubKey=${EC_APIM_SUBKEY:}
CreditorInstitutionRestClient.apimEndpoint=${EC_APIM_FORWARDER_ENDPOINT:localhost:8083}
CreditorInstitutionRestClient.apimPath=${EC_APIM_PATH:/pagopa-node-forwarder/api/v1}


###################
## OPENTELEMETRY
Expand Down
Loading

0 comments on commit b4f5046

Please sign in to comment.