diff --git a/apps/onboarding-functions/pom.xml b/apps/onboarding-functions/pom.xml index e74e78f0e..1e558b9a5 100644 --- a/apps/onboarding-functions/pom.xml +++ b/apps/onboarding-functions/pom.xml @@ -192,12 +192,17 @@ quarkus-jacoco test - - org.apache.commons - commons-collections4 - 4.4 - compile - + + org.apache.commons + commons-collections4 + 4.4 + compile + + + com.microsoft.azure + applicationinsights-web + 2.6.4 + diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/auth/EventhubSasTokenAuthorization.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/auth/EventhubSasTokenAuthorization.java index 2a16c2acd..b99091386 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/auth/EventhubSasTokenAuthorization.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/auth/EventhubSasTokenAuthorization.java @@ -35,8 +35,9 @@ public void filter(ClientRequestContext clientRequestContext) { NotificationConfig.Consumer consumerConfiguration = notificationConfig.consumers().values().stream() .filter(consumer -> consumer.topic().equals(topic)) .findFirst().orElse(null); - if(Objects.nonNull(consumerConfiguration)) + if (Objects.nonNull(consumerConfiguration)) { clientRequestContext.getHeaders().add("Authorization", getSASToken(resourceUri.toString(), consumerConfiguration.name(), consumerConfiguration.key())); + } } private static String getSASToken(String resourceUri, String keyName, String key) { diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/eventhub/EventHubRestClient.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/eventhub/EventHubRestClient.java index 964694d7f..d85fc4345 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/eventhub/EventHubRestClient.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/client/eventhub/EventHubRestClient.java @@ -8,6 +8,8 @@ import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; +import java.util.concurrent.CompletionStage; + @RegisterRestClient(configKey = "event-hub") @ApplicationScoped @Path("/") @@ -16,7 +18,7 @@ public interface EventHubRestClient { @POST @Path("{hubName}/messages") - void sendMessage(@PathParam("hubName") String topicName, String notification); + Void sendMessage(@PathParam("hubName") String topicName, String notification); } diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java index 5f4438450..26ecb43ba 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java @@ -84,5 +84,4 @@ public PadesSignService padesSignService(@ConfigProperty(name = "onboarding-func default -> new PadesSignServiceImpl(pkcs7HashSignService()); }; } - } diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java index 46a5844fb..310777acb 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java @@ -232,4 +232,16 @@ public String getParentDescription() { public void setParentDescription(String parentDescription) { this.parentDescription = parentDescription; } + + @Override + public String toString() { + return "Institution{" + + "id='" + id + '\'' + + ", taxCode='" + taxCode + '\'' + + ", description=" + description + + ", digitalAddress=" + digitalAddress + + ", origin=" + origin + + ", originId=" + originId + + '}'; + } } diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/NotificationFunctions.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/NotificationFunctions.java index d89284465..dd658fe0d 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/NotificationFunctions.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/NotificationFunctions.java @@ -37,9 +37,11 @@ public class NotificationFunctions { private final NotificationEventResenderService notificationEventResenderService; private final ObjectMapper objectMapper; + public NotificationFunctions(ObjectMapper objectMapper, NotificationEventService notificationEventService, - OnboardingService onboardingService, NotificationEventResenderService notificationEventResenderService) { + OnboardingService onboardingService, + NotificationEventResenderService notificationEventResenderService) { this.objectMapper = objectMapper; this.notificationEventService = notificationEventService; this.onboardingService = onboardingService; diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/OnboardingFunctions.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/OnboardingFunctions.java index d88560457..331642445 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/OnboardingFunctions.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/functions/OnboardingFunctions.java @@ -34,7 +34,6 @@ public class OnboardingFunctions { public static final String CREATED_NEW_ONBOARDING_ORCHESTRATION_WITH_INSTANCE_ID_MSG = "Created new Onboarding orchestration with instance ID = "; - private final OnboardingService service; private final CompletionService completionService; private final ObjectMapper objectMapper; diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefault.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefault.java index 0154de941..2e12ee99d 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefault.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefault.java @@ -94,7 +94,7 @@ public class CompletionServiceDefault implements CompletionService { @ConfigProperty(name = "onboarding-functions.persist-users.send-mail") private boolean hasToSendEmail; - @ConfigProperty(name = "onboarding-function.force-institution-persist") + @ConfigProperty(name = "onboarding-functions.force-institution-persist") private boolean forceInstitutionCreation; @Override diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java index dd10c34ba..4946c3b60 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java @@ -4,6 +4,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.microsoft.applicationinsights.TelemetryClient; +import com.microsoft.applicationinsights.TelemetryConfiguration; import com.microsoft.azure.functions.ExecutionContext; import it.pagopa.selfcare.onboarding.client.eventhub.EventHubRestClient; import it.pagopa.selfcare.onboarding.config.NotificationConfig; @@ -20,19 +22,24 @@ import it.pagopa.selfcare.product.service.ProductService; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import jakarta.ws.rs.core.Context; +import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.openapi.quarkus.core_json.api.InstitutionApi; import org.openapi.quarkus.core_json.model.InstitutionResponse; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import static it.pagopa.selfcare.onboarding.utils.Utils.isNotInstitutionOnboarding; @ApplicationScoped public class NotificationEventServiceDefault implements NotificationEventService { + public static final String EVENT_ONBOARDING_FN_NAME = "ONBOARDING-FN"; + public static final String EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE = "EventsOnboardingInstitution_failures"; + public static final String EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS = "EventsOnboardingInstitution_success"; + private static final String OPERATION_NAME = "ONBOARDING-FN"; + private final TelemetryClient telemetryClient; @RestClient @Inject EventHubRestClient eventHubRestClient; @@ -52,12 +59,17 @@ public NotificationEventServiceDefault(ProductService productService, NotificationConfig notificationConfig, NotificationBuilderFactory notificationBuilderFactory, TokenRepository tokenRepository, - QueueEventExaminer queueEventExaminer) { + QueueEventExaminer queueEventExaminer, + @Context @ConfigProperty(name = "onboarding-functions.appinsights.connection-string") String appInsightsConnectionString) { this.productService = productService; this.notificationConfig = notificationConfig; this.notificationBuilderFactory = notificationBuilderFactory; this.tokenRepository = tokenRepository; this.queueEventExaminer = queueEventExaminer; + TelemetryConfiguration telemetryConfiguration = TelemetryConfiguration.createDefault(); + telemetryConfiguration.setConnectionString(appInsightsConnectionString); + this.telemetryClient = new TelemetryClient(telemetryConfiguration); + this.telemetryClient.getContext().getOperation().setName(OPERATION_NAME); mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); } @@ -79,9 +91,8 @@ public void send(ExecutionContext context, Onboarding onboarding, QueueEvent que queueEvent = queueEventExaminer.determineEventType(onboarding); } - Optional token = tokenRepository.findByOnboardingId(onboarding.getId()); InstitutionResponse institution = institutionApi.retrieveInstitutionByIdUsingGET(onboarding.getInstitution().getId()); - + Optional token = tokenRepository.findByOnboardingId(onboarding.getId()); for (String consumer : product.getConsumers()) { NotificationConfig.Consumer consumerConfig = notificationConfig.consumers().get(consumer.toLowerCase()); prepareAndSendNotification(context, product, consumerConfig, onboarding, token.orElse(null), institution, queueEvent); @@ -105,7 +116,14 @@ private void prepareAndSendNotification(ExecutionContext context, Product produc private void sendNotification(ExecutionContext context, String topic, NotificationToSend notificationToSend) throws JsonProcessingException { String message = mapper.writeValueAsString(notificationToSend); context.getLogger().info(() -> String.format("Sending notification on topic: %s with message: %s", topic, message)); - eventHubRestClient.sendMessage(topic, message); + + try { + eventHubRestClient.sendMessage(topic, message); + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS, 1D)); + } catch (Exception e) { + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE, 1D)); + throw new NotificationException(e.getMessage()); + } } private void sendTestEnvProductsNotification(ExecutionContext context, Product product, String topic, NotificationToSend notificationToSend) throws JsonProcessingException { @@ -119,4 +137,48 @@ private void sendTestEnvProductsNotification(ExecutionContext context, Product p } } + public static Map notificationEventMap(NotificationToSend notificationToSend) { + Map propertiesMap = new HashMap<>(); + Optional.ofNullable(notificationToSend.getId()).ifPresent(value -> propertiesMap.put("id", value)); + Optional.ofNullable(notificationToSend.getInternalIstitutionID()).ifPresent(value -> propertiesMap.put("internalIstitutionID", value)); + Optional.ofNullable(notificationToSend.getInstitutionId()).ifPresent(value -> propertiesMap.put("institutionId", value)); + Optional.ofNullable(notificationToSend.getProduct()).ifPresent(value -> propertiesMap.put("product", value)); + Optional.ofNullable(notificationToSend.getState()).ifPresent(value -> propertiesMap.put("state", value)); + Optional.ofNullable(notificationToSend.getFilePath()).ifPresent(value -> propertiesMap.put("filePath", value)); + Optional.ofNullable(notificationToSend.getFileName()).ifPresent(value -> propertiesMap.put("fileName", value)); + Optional.ofNullable(notificationToSend.getContentType()).ifPresent(value -> propertiesMap.put("contentType", value)); + Optional.ofNullable(notificationToSend.getOnboardingTokenId()).ifPresent(value -> propertiesMap.put("onboardingTokenId", value)); + Optional.ofNullable(notificationToSend.getPricingPlan()).ifPresent(value -> propertiesMap.put("pricingPlan", value)); + + if (Optional.ofNullable(notificationToSend.getInstitution()).isPresent()) { + Optional.ofNullable(notificationToSend.getInstitution().getDescription()).ifPresent(value -> propertiesMap.put("description", value)); + Optional.ofNullable(notificationToSend.getInstitution().getInstitutionType()).ifPresent(value -> propertiesMap.put("institutionType", value.name())); + Optional.ofNullable(notificationToSend.getInstitution().getDigitalAddress()).ifPresent(value -> propertiesMap.put("digitalAddress", value)); + Optional.ofNullable(notificationToSend.getInstitution().getAddress()).ifPresent(value -> propertiesMap.put("address", value)); + Optional.ofNullable(notificationToSend.getInstitution().getTaxCode()).ifPresent(value -> propertiesMap.put("taxCode", value)); + Optional.ofNullable(notificationToSend.getInstitution().getOrigin()).ifPresent(value -> propertiesMap.put("origin", value)); + Optional.ofNullable(notificationToSend.getInstitution().getOriginId()).ifPresent(value -> propertiesMap.put("originId", value)); + Optional.ofNullable(notificationToSend.getInstitution().getIstatCode()).ifPresent(value -> propertiesMap.put("istatCode", value)); + Optional.ofNullable(notificationToSend.getInstitution().getCity()).ifPresent(value -> propertiesMap.put("city", value)); + Optional.ofNullable(notificationToSend.getInstitution().getCountry()).ifPresent(value -> propertiesMap.put("country", value)); + Optional.ofNullable(notificationToSend.getInstitution().getCounty()).ifPresent(value -> propertiesMap.put("county", value)); + Optional.ofNullable(notificationToSend.getInstitution().getSubUnitCode()).ifPresent(value -> propertiesMap.put("subUnitCode", value)); + Optional.ofNullable(notificationToSend.getInstitution().getCategory()).ifPresent(value -> propertiesMap.put("category", value)); + Optional.ofNullable(notificationToSend.getInstitution().getSubUnitType()).ifPresent(value -> propertiesMap.put("subUnitType", value)); + if (Optional.ofNullable(notificationToSend.getInstitution().getRootParent()).isPresent()) { + Optional.ofNullable(notificationToSend.getInstitution().getRootParent().getId()).ifPresent(value -> propertiesMap.put("root.parentId", value)); + Optional.ofNullable(notificationToSend.getInstitution().getRootParent().getDescription()).ifPresent(value -> propertiesMap.put("root.parentDescription", value)); + Optional.ofNullable(notificationToSend.getInstitution().getRootParent().getOriginId()).ifPresent(value -> propertiesMap.put("root.parentOriginId", value)); + } + } + + if (Optional.ofNullable(notificationToSend.getBilling()).isPresent()) { + Optional.ofNullable(notificationToSend.getBilling().getRecipientCode()).ifPresent(value -> propertiesMap.put("billing.recipientCode", value)); + Optional.ofNullable(notificationToSend.getBilling().getTaxCodeInvoicing()).ifPresent(value -> propertiesMap.put("billing.TaxCodeInvoicing", value)); + Optional.ofNullable(notificationToSend.getBilling().getVatNumber()).ifPresent(value -> propertiesMap.put("billing.VatNumber", value)); + Optional.ofNullable(notificationToSend.getBilling().isPublicService()).ifPresent(value -> propertiesMap.put("billing.isPublicService", value ? "true" : "false")); + } + + return propertiesMap; + } } diff --git a/apps/onboarding-functions/src/main/resources/application.properties b/apps/onboarding-functions/src/main/resources/application.properties index 3f866a8b1..615f4c65a 100644 --- a/apps/onboarding-functions/src/main/resources/application.properties +++ b/apps/onboarding-functions/src/main/resources/application.properties @@ -25,8 +25,12 @@ onboarding-functions.purge.all-from = 150 onboarding-functions.purge.all-to = 120 #property to invoke or not the user microservice onboarding-functions.persist-users.send-mail = ${USER_MS_SEND_MAIL:true} +onboarding-functions.appinsights.connection-string=${APPLICATIONINSIGHTS_CONNECTION_STRING:InstrumentationKey=00000000-0000-0000-0000-000000000000} + #property to force the institution creation when a new onboarding to pnpg is performed only in pnpg environment -onboarding-function.force-institution-persist= ${FORCE_INSTITUTION_PERSIST:false} +onboarding-functions.force-institution-persist= ${FORCE_INSTITUTION_PERSIST:false} + + ## REST CLIENT # quarkus.openapi-generator.user_registry_json.auth.api_key.api-key = ${USER_REGISTRY_API_KEY:example-api-key} diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java index 641382437..345f9b651 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java @@ -34,7 +34,7 @@ public class CompletionServiceDefaultTest2 { public static class ForceCreationProfile implements QuarkusTestProfile { @Override public Map getConfigOverrides() { - return Map.of("onboarding-function.force-institution-persist", "true"); + return Map.of("onboarding-functions.force-institution-persist", "true"); } } diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java index f2842636a..d2e4d6a8f 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java @@ -4,9 +4,9 @@ import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; import it.pagopa.selfcare.onboarding.client.eventhub.EventHubRestClient; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.WorkflowType; -import it.pagopa.selfcare.onboarding.dto.NotificationToSend; -import it.pagopa.selfcare.onboarding.dto.QueueEvent; +import it.pagopa.selfcare.onboarding.dto.*; import it.pagopa.selfcare.onboarding.entity.Billing; import it.pagopa.selfcare.onboarding.entity.Institution; import it.pagopa.selfcare.onboarding.entity.Onboarding; @@ -25,10 +25,11 @@ import org.openapi.quarkus.core_json.model.InstitutionResponse; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.logging.Logger; -import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @QuarkusTest @@ -101,6 +102,7 @@ private void mockNotificationMapper(boolean shouldSendNotification) { @Test void sendMessageWithoutToken() { final Onboarding onboarding = createOnboarding(); + onboarding.setId("123"); final Product product = createProduct(); when(productService.getProduct(any())).thenReturn(product); when(tokenRepository.findByOnboardingId(any())).thenReturn(Optional.empty()); @@ -190,6 +192,98 @@ void sendMessageWontProceedsWhenOnboardingIsNotReferredToInstitution() { verifyNoInteractions(eventHubRestClient); } + @Test + void notificationEventMapTest() { + NotificationToSend notificationToSend = new NotificationToSend(); + notificationToSend.setId("id"); + notificationToSend.setInternalIstitutionID("internal"); + notificationToSend.setProduct("prod"); + notificationToSend.setState("state"); + notificationToSend.setFileName("fileName"); + notificationToSend.setFilePath("filePath"); + notificationToSend.setContentType("contentType"); + + InstitutionToNotify institution = new InstitutionToNotify(); + institution.setDescription("description"); + institution.setInstitutionType(InstitutionType.SA); + institution.setDigitalAddress("mail"); + notificationToSend.setInstitution(institution); + + BillingToSend billing = new BillingToSend(); + billing.setRecipientCode("12345"); + billing.setPublicService(false); + notificationToSend.setBilling(billing); + + Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend); + assertNotNull(properties); + assertEquals(properties.get("id"), "id"); + assertEquals(properties.get("internalIstitutionID"), "internal"); + assertEquals(properties.get("product"), "prod"); + assertEquals(properties.get("state"), "state"); + assertEquals(properties.get("fileName"), "fileName"); + assertEquals(properties.get("filePath"), "filePath"); + assertEquals(properties.get("contentType"), "application/octet-stream"); + + assertEquals(properties.get("description"), "description"); + assertEquals(properties.get("digitalAddress"), "mail"); + assertEquals(properties.get("institutionType"), "SA"); + + assertEquals(properties.get("billing.recipientCode"), "12345"); + assertEquals(properties.get("billing.isPublicService"), "false"); + } + + @Test + void notificationEventMapRootParentTest() { + NotificationToSend notificationToSend = new NotificationToSend(); + notificationToSend.setId("id"); + notificationToSend.setInternalIstitutionID("internal"); + notificationToSend.setProduct("prod"); + notificationToSend.setState("state"); + notificationToSend.setFileName("fileName"); + notificationToSend.setFilePath("filePath"); + notificationToSend.setContentType("contentType"); + + InstitutionToNotify institution = new InstitutionToNotify(); + institution.setDescription("description"); + institution.setInstitutionType(InstitutionType.SA); + institution.setDigitalAddress("mail"); + RootParent rootParent = new RootParent(); + rootParent.setDescription("RootDescription"); + rootParent.setId("RootId"); + rootParent.setOriginId("RootOriginId"); + institution.setRootParent(rootParent); + notificationToSend.setInstitution(institution); + + BillingToSend billing = new BillingToSend(); + billing.setRecipientCode("12345"); + billing.setPublicService(true); + billing.setVatNumber("123"); + billing.setTaxCodeInvoicing("456"); + notificationToSend.setBilling(billing); + + Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend); + assertNotNull(properties); + assertEquals(properties.get("id"), "id"); + assertEquals(properties.get("internalIstitutionID"), "internal"); + assertEquals(properties.get("product"), "prod"); + assertEquals(properties.get("state"), "state"); + assertEquals(properties.get("fileName"), "fileName"); + assertEquals(properties.get("filePath"), "filePath"); + assertEquals(properties.get("contentType"), "application/octet-stream"); + + assertEquals(properties.get("description"), "description"); + assertEquals(properties.get("digitalAddress"), "mail"); + assertEquals(properties.get("institutionType"), "SA"); + assertEquals(properties.get("root.parentId"), "RootId"); + assertEquals(properties.get("root.parentDescription"), "RootDescription"); + assertEquals(properties.get("root.parentOriginId"), "RootOriginId"); + + assertEquals(properties.get("billing.recipientCode"), "12345"); + assertEquals(properties.get("billing.isPublicService"), "true"); + assertEquals(properties.get("billing.VatNumber"), "123"); + assertEquals(properties.get("billing.TaxCodeInvoicing"), "456"); + } + private Onboarding createOnboarding() { Onboarding onboarding = new Onboarding(); onboarding.setWorkflowType(WorkflowType.CONTRACT_REGISTRATION); @@ -216,4 +310,4 @@ private Product createProduct() { return product; } -} +} \ No newline at end of file diff --git a/apps/onboarding-functions/src/test/resources/application.properties b/apps/onboarding-functions/src/test/resources/application.properties index 445a91d28..70563b7be 100644 --- a/apps/onboarding-functions/src/test/resources/application.properties +++ b/apps/onboarding-functions/src/test/resources/application.properties @@ -8,6 +8,7 @@ quarkus.azure-functions.app-service-plan-name=example ## MAIL AND MAIL TEMPLATE ## onboarding-functions.sender-mail = ${MAIL_SENDER_ADDRESS:test@test.it} onboarding-functions.notification-admin-email = default +onboarding-functions.appinsights.connection-string=${APPLICATIONINSIGHTS_CONNECTION_STRING:InstrumentationKey=00000000-0000-0000-0000-000000000000} ## MAIL TEMPLATE onboarding-functions.mail-template.path.onboarding.complete-path = default diff --git a/infra/container_apps/hub_spid_login/container_app.tf b/infra/container_apps/hub_spid_login/container_app.tf index 4bc8281b1..801a0b2bc 100644 --- a/infra/container_apps/hub_spid_login/container_app.tf +++ b/infra/container_apps/hub_spid_login/container_app.tf @@ -20,9 +20,9 @@ module "container_app_hub_spid_login" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Liveness" - failureThreshold = 5 + timeoutSeconds = 5 + type = "Liveness" + failureThreshold = 5 initialDelaySeconds = 1 }, { @@ -31,9 +31,9 @@ module "container_app_hub_spid_login" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Readiness" - failureThreshold = 3 + timeoutSeconds = 5 + type = "Readiness" + failureThreshold = 3 initialDelaySeconds = 3 }, { @@ -42,9 +42,9 @@ module "container_app_hub_spid_login" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - failureThreshold = 30 - type = "Startup" + timeoutSeconds = 5 + failureThreshold = 30 + type = "Startup" initialDelaySeconds = 30 } ] diff --git a/infra/container_apps/hub_spid_login/env/dev/terraform.tfvars b/infra/container_apps/hub_spid_login/env/dev/terraform.tfvars index 4ae281ea8..0f2e2c967 100644 --- a/infra/container_apps/hub_spid_login/env/dev/terraform.tfvars +++ b/infra/container_apps/hub_spid_login/env/dev/terraform.tfvars @@ -1,7 +1,7 @@ -prefix = "selc" -env_short = "d" +prefix = "selc" +env_short = "d" suffix_increment = "-002" -cae_name = "cae-002" +cae_name = "cae-002" tags = { CreatedBy = "Terraform" diff --git a/infra/container_apps/onboarding-cdc/env/dev/terraform.tfvars b/infra/container_apps/onboarding-cdc/env/dev/terraform.tfvars index 996182f12..a56ace110 100644 --- a/infra/container_apps/onboarding-cdc/env/dev/terraform.tfvars +++ b/infra/container_apps/onboarding-cdc/env/dev/terraform.tfvars @@ -1,7 +1,7 @@ -prefix = "selc" -env_short = "d" +prefix = "selc" +env_short = "d" suffix_increment = "-002" -cae_name = "cae-002" +cae_name = "cae-002" tags = { CreatedBy = "Terraform" @@ -50,7 +50,7 @@ app_settings = [ value = "true" }, { - name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" + name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" value = "5" } ] diff --git a/infra/container_apps/onboarding-cdc/env/prod-pnpg/terraform.tfvars b/infra/container_apps/onboarding-cdc/env/prod-pnpg/terraform.tfvars index 55fe0132e..cb62fc601 100644 --- a/infra/container_apps/onboarding-cdc/env/prod-pnpg/terraform.tfvars +++ b/infra/container_apps/onboarding-cdc/env/prod-pnpg/terraform.tfvars @@ -1,6 +1,6 @@ prefix = "selc" env_short = "p" -is_pnpg = true +is_pnpg = true tags = { CreatedBy = "Terraform" diff --git a/infra/container_apps/onboarding-cdc/env/prod/terraform.tfvars b/infra/container_apps/onboarding-cdc/env/prod/terraform.tfvars index 8a4247a82..fb423df9e 100644 --- a/infra/container_apps/onboarding-cdc/env/prod/terraform.tfvars +++ b/infra/container_apps/onboarding-cdc/env/prod/terraform.tfvars @@ -35,7 +35,7 @@ app_settings = [ value = "https://selc-p-onboarding-fn.azurewebsites.net" }, { - name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" + name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" value = "5" } ] diff --git a/infra/container_apps/onboarding-cdc/env/uat/terraform.tfvars b/infra/container_apps/onboarding-cdc/env/uat/terraform.tfvars index 93545da60..0f508486a 100644 --- a/infra/container_apps/onboarding-cdc/env/uat/terraform.tfvars +++ b/infra/container_apps/onboarding-cdc/env/uat/terraform.tfvars @@ -37,7 +37,7 @@ app_settings = [ value = "https://selc-u-onboarding-fn.azurewebsites.net" }, { - name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" + name = "ONBOARDING-CDC-MINUTES-THRESHOLD-FOR-UPDATE-NOTIFICATION" value = "5" } ] diff --git a/infra/container_apps/onboarding-cdc/main.tf b/infra/container_apps/onboarding-cdc/main.tf index 88e44445b..064aa1465 100644 --- a/infra/container_apps/onboarding-cdc/main.tf +++ b/infra/container_apps/onboarding-cdc/main.tf @@ -31,9 +31,9 @@ module "container_app_onboarding_cdc" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Liveness" - failureThreshold = 3 + timeoutSeconds = 5 + type = "Liveness" + failureThreshold = 3 initialDelaySeconds = 1 }, { @@ -42,9 +42,9 @@ module "container_app_onboarding_cdc" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Readiness" - failureThreshold = 30 + timeoutSeconds = 5 + type = "Readiness" + failureThreshold = 30 initialDelaySeconds = 3 }, { @@ -53,9 +53,9 @@ module "container_app_onboarding_cdc" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - failureThreshold = 5 - type = "Startup" + timeoutSeconds = 5 + failureThreshold = 5 + type = "Startup" initialDelaySeconds = 5 } ] diff --git a/infra/container_apps/onboarding-ms/container_app.tf b/infra/container_apps/onboarding-ms/container_app.tf index 0c6b99b21..289cb7a16 100644 --- a/infra/container_apps/onboarding-ms/container_app.tf +++ b/infra/container_apps/onboarding-ms/container_app.tf @@ -21,9 +21,9 @@ module "container_app_onboarding_ms" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Liveness" - failureThreshold = 3 + timeoutSeconds = 5 + type = "Liveness" + failureThreshold = 3 initialDelaySeconds = 1 }, { @@ -32,9 +32,9 @@ module "container_app_onboarding_ms" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - type = "Readiness" - failureThreshold = 30 + timeoutSeconds = 5 + type = "Readiness" + failureThreshold = 30 initialDelaySeconds = 3 }, { @@ -43,9 +43,9 @@ module "container_app_onboarding_ms" { port = 8080 scheme = "HTTP" } - timeoutSeconds = 5 - failureThreshold = 5 - type = "Startup" + timeoutSeconds = 5 + failureThreshold = 5 + type = "Startup" initialDelaySeconds = 5 } ] diff --git a/infra/container_apps/onboarding-ms/env/dev/terraform.tfvars b/infra/container_apps/onboarding-ms/env/dev/terraform.tfvars index 04c42e423..75ebe9fe3 100644 --- a/infra/container_apps/onboarding-ms/env/dev/terraform.tfvars +++ b/infra/container_apps/onboarding-ms/env/dev/terraform.tfvars @@ -1,7 +1,7 @@ -prefix = "selc" -env_short = "d" +prefix = "selc" +env_short = "d" suffix_increment = "-002" -cae_name = "cae-002" +cae_name = "cae-002" tags = { CreatedBy = "Terraform" diff --git a/infra/functions/onboarding-functions/env/dev-pnpg/terraform.tfvars b/infra/functions/onboarding-functions/env/dev-pnpg/terraform.tfvars index 915c6869d..f578015a5 100644 --- a/infra/functions/onboarding-functions/env/dev-pnpg/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/dev-pnpg/terraform.tfvars @@ -39,6 +39,7 @@ storage_account_info = { } app_settings = { + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-d-pnpg-kv.vault.azure.net/secrets/appinsights-connection-string/)", "USER_REGISTRY_URL" = "https://api.uat.pdv.pagopa.it/user-registry/v1", "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-d-pnpg-kv.vault.azure.net/secrets/mongodb-connection-string/)", "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-d-pnpg-kv.vault.azure.net/secrets/user-registry-api-key/)", diff --git a/infra/functions/onboarding-functions/env/dev/terraform.tfvars b/infra/functions/onboarding-functions/env/dev/terraform.tfvars index 4fc7cee1a..0de68e5ff 100644 --- a/infra/functions/onboarding-functions/env/dev/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/dev/terraform.tfvars @@ -38,6 +38,7 @@ storage_account_info = { } app_settings = { + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/appinsights-connection-string/)", "USER_REGISTRY_URL" = "https://api.uat.pdv.pagopa.it/user-registry/v1", "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/mongodb-connection-string/)", "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/user-registry-api-key/)", @@ -93,7 +94,7 @@ app_settings = { "MINUTES_THRESHOLD_FOR_UPDATE_NOTIFICATION" = "5" "BYPASS_CHECK_ORGANIZATION" = "false" "PROD_FD_URL" = "https://fid00001fe.siachain.sv.sia.eu:30008" - "FD_TOKEN_GRANT_TYPE" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-grant-type/)" - "FD_TOKEN_CLIENT_ID" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-client-id/)" - "FD_TOKEN_CLIENT_SECRET" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-client-secret/)" + "FD_TOKEN_GRANT_TYPE" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-grant-type/)" + "FD_TOKEN_CLIENT_ID" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-client-id/)" + "FD_TOKEN_CLIENT_SECRET" = "@Microsoft.KeyVault(SecretUri=https://selc-d-kv.vault.azure.net/secrets/prod-fd-client-secret/)" } \ No newline at end of file diff --git a/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars b/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars index 4b079e601..bffa08c47 100644 --- a/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars @@ -39,11 +39,12 @@ storage_account_info = { } app_settings = { - "USER_REGISTRY_URL" = "https://api.pdv.pagopa.it/user-registry/v1", - "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/mongodb-connection-string/)", - "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/user-registry-api-key/)", - "BLOB_STORAGE_CONN_STRING_PRODUCT" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/blob-storage-product-connection-string/)", - "STORAGE_CONTAINER_PRODUCT" = "selc-p-product", + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/appinsights-connection-string/)", + "USER_REGISTRY_URL" = "https://api.pdv.pagopa.it/user-registry/v1", + "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/mongodb-connection-string/)", + "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/user-registry-api-key/)", + "BLOB_STORAGE_CONN_STRING_PRODUCT" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/blob-storage-product-connection-string/)", + "STORAGE_CONTAINER_PRODUCT" = "selc-p-product", ## PNPG contains template mail in checkout storage "BLOB_STORAGE_CONN_STRING_CONTRACT" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/blob-storage-contract-connection-string/)", @@ -58,27 +59,27 @@ app_settings = { "MAIL_SERVER_PORT" = "465", "MAIL_TEMPLATE_COMPLETE_PATH" = "resources/templates/email/onboarding_1.0.0.json", - "MS_USER_URL" = "https://selc-p-pnpg-user-ms-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", - "MS_CORE_URL" = "https://selc-p-pnpg-ms-core-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", - "JWT_BEARER_TOKEN" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/jwt-bearer-token-functions/)", - "MS_PARTY_REGISTRY_URL" = "https://selc-p-pnpg-party-reg-proxy-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", - "PAGOPA_LOGO_ENABLE" = "false" - "RETRY_MAX_ATTEMPTS" = "3" - "FIRST_RETRY_INTERVAL" = "5" - "BACKOFF_COEFFICIENT" = "1" - "EVENT_HUB_BASE_PATH" = "https://selc-p-eventhub-ns.servicebus.windows.net", - "STANDARD_SHARED_ACCESS_KEY_NAME" = "selfcare-wo" - "EVENTHUB_SC_CONTRACTS_SELFCARE_WO_KEY_LC" = "string" - "STANDARD_TOPIC_NAME" = "SC-Contracts" - "SAP_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB_SC_CONTRACTS_SAP_SELFCARE_WO_KEY_LC" = "string" - "SAP_TOPIC_NAME" = "SC-Contracts-SAP" - "FD_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB_SC_CONTRACTS_FD_SELFCARE_WO_KEY_LC" = "string" - "FD_TOPIC_NAME" = "Selfcare-FD" - "SAP_ALLOWED_INSTITUTION_TYPE" = "PA,GSP,SA,AS,SCP" - "SAP_ALLOWED_ORIGINS" = "IPA,SELC" - "MINUTES_THRESHOLD_FOR_UPDATE_NOTIFICATION" = "5" + "MS_USER_URL" = "https://selc-p-pnpg-user-ms-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", + "MS_CORE_URL" = "https://selc-p-pnpg-ms-core-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", + "JWT_BEARER_TOKEN" = "@Microsoft.KeyVault(SecretUri=https://selc-p-pnpg-kv.vault.azure.net/secrets/jwt-bearer-token-functions/)", + "MS_PARTY_REGISTRY_URL" = "https://selc-p-pnpg-party-reg-proxy-ca.calmmoss-0be48755.westeurope.azurecontainerapps.io", + "PAGOPA_LOGO_ENABLE" = "false" + "RETRY_MAX_ATTEMPTS" = "3" + "FIRST_RETRY_INTERVAL" = "5" + "BACKOFF_COEFFICIENT" = "1" + "EVENT_HUB_BASE_PATH" = "https://selc-p-eventhub-ns.servicebus.windows.net", + "STANDARD_SHARED_ACCESS_KEY_NAME" = "selfcare-wo" + "EVENTHUB_SC_CONTRACTS_SELFCARE_WO_KEY_LC" = "string" + "STANDARD_TOPIC_NAME" = "SC-Contracts" + "SAP_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" + "EVENTHUB_SC_CONTRACTS_SAP_SELFCARE_WO_KEY_LC" = "string" + "SAP_TOPIC_NAME" = "SC-Contracts-SAP" + "FD_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" + "EVENTHUB_SC_CONTRACTS_FD_SELFCARE_WO_KEY_LC" = "string" + "FD_TOPIC_NAME" = "Selfcare-FD" + "SAP_ALLOWED_INSTITUTION_TYPE" = "PA,GSP,SA,AS,SCP" + "SAP_ALLOWED_ORIGINS" = "IPA,SELC" + "MINUTES_THRESHOLD_FOR_UPDATE_NOTIFICATION" = "5" ## IGNORE VALUES diff --git a/infra/functions/onboarding-functions/env/prod/terraform.tfvars b/infra/functions/onboarding-functions/env/prod/terraform.tfvars index 908972fea..f1851ec69 100644 --- a/infra/functions/onboarding-functions/env/prod/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/prod/terraform.tfvars @@ -38,6 +38,7 @@ storage_account_info = { } app_settings = { + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-p-kv.vault.azure.net/secrets/appinsights-connection-string/)", "USER_REGISTRY_URL" = "https://api.pdv.pagopa.it/user-registry/v1", "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-p-kv.vault.azure.net/secrets/mongodb-connection-string/)", "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-p-kv.vault.azure.net/secrets/user-registry-api-key/)", diff --git a/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars b/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars index 75a1fd300..10d17b38f 100644 --- a/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars @@ -39,11 +39,12 @@ storage_account_info = { } app_settings = { - "USER_REGISTRY_URL" = "https://api.uat.pdv.pagopa.it/user-registry/v1", - "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/mongodb-connection-string/)", - "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/user-registry-api-key/)", - "BLOB_STORAGE_CONN_STRING_PRODUCT" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/blob-storage-product-connection-string/)", - "STORAGE_CONTAINER_PRODUCT" = "selc-u-product", + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/appinsights-connection-string/)", + "USER_REGISTRY_URL" = "https://api.uat.pdv.pagopa.it/user-registry/v1", + "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/mongodb-connection-string/)", + "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/user-registry-api-key/)", + "BLOB_STORAGE_CONN_STRING_PRODUCT" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/blob-storage-product-connection-string/)", + "STORAGE_CONTAINER_PRODUCT" = "selc-u-product", ## PNPG contains template mail in checkout storage "BLOB_STORAGE_CONN_STRING_CONTRACT" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/blob-storage-product-connection-string/)", @@ -57,27 +58,27 @@ app_settings = { "MAIL_SERVER_PORT" = "465", "MAIL_TEMPLATE_COMPLETE_PATH" = "resources/templates/email/onboarding_1.0.0.json", - "MS_USER_URL" = "https://selc-u-pnpg-user-ms-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", - "MS_CORE_URL" = "https://selc-u-pnpg-ms-core-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", - "JWT_BEARER_TOKEN" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/jwt-bearer-token-functions/)", - "MS_PARTY_REGISTRY_URL" = "https://selc-u-pnpg-party-reg-proxy-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", - "PAGOPA_LOGO_ENABLE" = "false", - "RETRY_MAX_ATTEMPTS" = "3" - "FIRST_RETRY_INTERVAL" = "5" - "BACKOFF_COEFFICIENT" = "1" - "EVENT_HUB_BASE_PATH" = "https://selc-u-eventhub-ns.servicebus.windows.net", - "STANDARD_SHARED_ACCESS_KEY_NAME" = "selfcare-wo" - "EVENTHUB-SC-CONTRACTS-SELFCARE-WO-KEY-LC" = "string" - "STANDARD_TOPIC_NAME" = "SC-Contracts" - "SAP_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB-SC-CONTRACTS-SAP-SELFCARE-WO-KEY-LC" = "string" - "SAP_TOPIC_NAME" = "SC-Contracts-SAP" - "FD_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB-SC-CONTRACTS-FD-SELFCARE-WO-KEY-LC" = "string" - "FD_TOPIC_NAME" = "Selfcare-FD" - "SAP_ALLOWED_INSTITUTION_TYPE" = "PA,GSP,SA,AS,SCP" - "SAP_ALLOWED_ORIGINS" = "IPA,SELC" - "MINUTES_THRESHOLD_FOR_UPDATE_NOTIFICATION" = "5" + "MS_USER_URL" = "https://selc-u-pnpg-user-ms-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", + "MS_CORE_URL" = "https://selc-u-pnpg-ms-core-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", + "JWT_BEARER_TOKEN" = "@Microsoft.KeyVault(SecretUri=https://selc-u-pnpg-kv.vault.azure.net/secrets/jwt-bearer-token-functions/)", + "MS_PARTY_REGISTRY_URL" = "https://selc-u-pnpg-party-reg-proxy-ca.orangeground-0bd2d4dc.westeurope.azurecontainerapps.io", + "PAGOPA_LOGO_ENABLE" = "false", + "RETRY_MAX_ATTEMPTS" = "3" + "FIRST_RETRY_INTERVAL" = "5" + "BACKOFF_COEFFICIENT" = "1" + "EVENT_HUB_BASE_PATH" = "https://selc-u-eventhub-ns.servicebus.windows.net", + "STANDARD_SHARED_ACCESS_KEY_NAME" = "selfcare-wo" + "EVENTHUB-SC-CONTRACTS-SELFCARE-WO-KEY-LC" = "string" + "STANDARD_TOPIC_NAME" = "SC-Contracts" + "SAP_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" + "EVENTHUB-SC-CONTRACTS-SAP-SELFCARE-WO-KEY-LC" = "string" + "SAP_TOPIC_NAME" = "SC-Contracts-SAP" + "FD_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" + "EVENTHUB-SC-CONTRACTS-FD-SELFCARE-WO-KEY-LC" = "string" + "FD_TOPIC_NAME" = "Selfcare-FD" + "SAP_ALLOWED_INSTITUTION_TYPE" = "PA,GSP,SA,AS,SCP" + "SAP_ALLOWED_ORIGINS" = "IPA,SELC" + "MINUTES_THRESHOLD_FOR_UPDATE_NOTIFICATION" = "5" ## IGNORE VALUES diff --git a/infra/functions/onboarding-functions/env/uat/terraform.tfvars b/infra/functions/onboarding-functions/env/uat/terraform.tfvars index 9e0ea604b..1a16bae5d 100644 --- a/infra/functions/onboarding-functions/env/uat/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/uat/terraform.tfvars @@ -38,6 +38,7 @@ storage_account_info = { } app_settings = { + "APPLICATIONINSIGHTS_CONNECTION_STRING" = "@Microsoft.KeyVault(SecretUri=https://selc-u-kv.vault.azure.net/secrets/appinsights-connection-string/)", "USER_REGISTRY_URL" = "https://api.uat.pdv.pagopa.it/user-registry/v1", "MONGODB_CONNECTION_URI" = "@Microsoft.KeyVault(SecretUri=https://selc-u-kv.vault.azure.net/secrets/mongodb-connection-string/)", "USER_REGISTRY_API_KEY" = "@Microsoft.KeyVault(SecretUri=https://selc-u-kv.vault.azure.net/secrets/user-registry-api-key/)", diff --git a/infra/functions/onboarding-functions/functions.tf b/infra/functions/onboarding-functions/functions.tf index f4b0f6667..3036af8b0 100644 --- a/infra/functions/onboarding-functions/functions.tf +++ b/infra/functions/onboarding-functions/functions.tf @@ -63,11 +63,11 @@ resource "azurerm_key_vault_access_policy" "keyvault_functions_access_policy" { } data "azurerm_resource_group" "nat_rg" { - name = "${local.base_domain_name}-nat-rg" + name = "${local.base_domain_name}-nat-rg" } data "azurerm_resource_group" "vnet_rg" { - name = "${local.base_domain_vnet_name}-vnet-rg" + name = "${local.base_domain_vnet_name}-vnet-rg" } data "azurerm_public_ip" "pip_outbound" {