Skip to content

Commit 1995e18

Browse files
gioelemellacap-ang
andauthored
chore: [PAGOPA-3449] Add Helpdesk API Legacy Redirect (#3554)
* [PAGOPA-3449] added generator helpdesk api to technical support product * [PAGOPA-3449] fix api and policy definition and added integration tests sub key * [PAGOPA-3449] fix * chore: rollback * feat(pdf-helpdesk): Add redirect policy * fix(pdf-helpdesk): Update hostname and add comments * chore: Update OpenAPI version * wip(receipts): Remove API and Product for receipts-service-api * chore(receipts): Receipts API removal - Remove policy and API migrated to the microservice infra - Add useful script and file for resource import and state removal * chore: UAT apply - Remove alert from UAT - Add resource for apply * chore(receipts): Add apim_receipts_product module * chore(receipts): Clean migration tools * chore(receipts): Fix hostname and remove recover-failed APIs * chore(receipts): Remove cart API from helpdesk openapi --------- Co-authored-by: Angelo Caporaso <56113767+cap-ang@users.noreply.github.com>
1 parent 692311e commit 1995e18

File tree

9 files changed

+57
-975
lines changed

9 files changed

+57
-975
lines changed

src/domains/receipts-app/00_alert.tf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
locals {
33

4-
fn_name_for_alerts_exceptions = var.env_short == "d" ? [] : [
4+
fn_name_for_alerts_exceptions = var.env_short != "p" ? [] : [
55
{
66
name : "BizEventToReceiptProcessor"
77
}
@@ -58,7 +58,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-sending-receipt
5858
# BizEventToReceiptProcessor execution logs that a Receipt instance has been set to NOT_QUEUE_SENT
5959
# https://github.com/pagopa/pagopa-receipt-pdf-datastore/blob/1a0b36f9693c17ceeffe5d35bf7ace7371a72a13/src/main/java/it/gov/pagopa/receipt/pdf/datastore/service/BizEventToReceiptService.java#L58C17-L58C28
6060
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-datastore-not-sent-to-queue-alert" {
61-
count = var.env_short != "d" ? 1 : 0
61+
count = var.env_short == "p" ? 1 : 0
6262
resource_group_name = "dashboards"
6363
name = "pagopa-${var.env_short}-receiptsdatastore-not-sent-to-queue-alert"
6464
location = var.location
@@ -92,7 +92,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-datastore-not-s
9292
# BizEventToReceiptProcessor receive a biz event related to a cart (totalNotice > 1)
9393
# https://github.com/pagopa/pagopa-receipt-pdf-datastore/blob/1a0b36f9693c17ceeffe5d35bf7ace7371a72a13/src/main/java/it/gov/pagopa/receipt/pdf/datastore/BizEventToReceipt.java#L160
9494
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-cart-event-discarded-alert" {
95-
count = var.env_short != "d" ? 1 : 0
95+
count = var.env_short == "p" ? 1 : 0
9696
resource_group_name = "dashboards"
9797
name = "pagopa-${var.env_short}-receipt-cart-event-discarded-alert"
9898
location = var.location
@@ -130,7 +130,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-cart-event-disc
130130
# ManageReceiptPoisonQueueProcessor execution logs that a new entry has been set in error
131131
# https://github.com/pagopa/pagopa-receipt-pdf-generator/blob/6b6c600db4b13ad7cd4b64596ba29fd0f6c38e70/src/main/java/it/gov/pagopa/receipt/pdf/generator/ManageReceiptPoisonQueue.java#L105
132132
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-in-error-alert" {
133-
count = var.env_short != "d" ? 1 : 0
133+
count = var.env_short == "p" ? 1 : 0
134134
resource_group_name = "dashboards"
135135
name = "pagopa-${var.env_short}-receipt-in-error-alert"
136136
location = var.location
@@ -164,7 +164,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-in-error-alert"
164164
# GenerateReceiptProcess execution logs that the receipt pdf cant be generated because there are missing property in biz-event
165165
# https://github.com/pagopa/pagopa-receipt-pdf-generator/blob/653edca00eee4fc3ecf65b60c91c9b20395e7df2/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/impl/GenerateReceiptPdfServiceImpl.java#L165
166166
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-missing-bizevent-property-alert" {
167-
count = var.env_short != "d" ? 1 : 0
167+
count = var.env_short == "p" ? 1 : 0
168168
resource_group_name = "dashboards"
169169
name = "pagopa-${var.env_short}-missing-bizevent-property-alert"
170170
location = var.location
@@ -198,7 +198,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-missing-bizeven
198198
# GenerateReceiptProcess execution logs that the pdf engine responded with KO
199199
# https://github.com/pagopa/pagopa-receipt-pdf-generator/blob/653edca00eee4fc3ecf65b60c91c9b20395e7df2/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/impl/GenerateReceiptPdfServiceImpl.java#L165
200200
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-pdf-engine-response-ko" {
201-
count = var.env_short != "d" ? 1 : 0
201+
count = var.env_short == "p" ? 1 : 0
202202
resource_group_name = "dashboards"
203203
name = "pagopa-${var.env_short}-pdf-engine-response-ko"
204204
location = var.location
@@ -232,7 +232,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-pdf-engine-resp
232232
# GenerateReceiptProcess execution logs that cannot save the PDF Receipt in blob storage
233233
# https://github.com/pagopa/pagopa-receipt-pdf-generator/blob/653edca00eee4fc3ecf65b60c91c9b20395e7df2/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/impl/GenerateReceiptPdfServiceImpl.java#L165
234234
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-pdf-save-to-blob-error" {
235-
count = var.env_short != "d" ? 1 : 0
235+
count = var.env_short == "p" ? 1 : 0
236236
resource_group_name = "dashboards"
237237
name = "pagopa-${var.env_short}-pdf-save-to-blob-error"
238238
location = var.location
@@ -266,7 +266,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-pdf-save-to-blo
266266
# PDVTokenizerServiceImpl execution logs that an error has been encountered on the PDV Tokenizer service
267267
# https://github.com/pagopa/pagopa-receipt-pdf-datatstore/blob/main/src/main/java/it/gov/pagopa/receipt/pdf/datastore/service/impl/PDVTokenizerServiceImpl.java#L80
268268
resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-tokenizer-error-on-datastore-alert" {
269-
count = var.env_short != "d" ? 1 : 0
269+
count = var.env_short == "p" ? 1 : 0
270270
resource_group_name = "dashboards"
271271
name = "pagopa-${var.env_short}-tokenizer-error-on-datastore"
272272
location = var.location
@@ -305,7 +305,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-tokenizer-error-
305305
# NotifierRetry execution logs that a new entry has been set in error
306306
# https://github.com/pagopa/pagopa-receipt-pdf-notifier/blob/26067525b154796962168e661ee932d4e628f1be/src/main/java/it/gov/pagopa/receipt/pdf/notifier/NotifierRetry.java#L52
307307
resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-to-notify-in-retry-alert" {
308-
count = var.env_short != "d" ? 1 : 0
308+
count = var.env_short == "p" ? 1 : 0
309309
resource_group_name = "dashboards"
310310
name = "pagopa-${var.env_short}-notify-in-error-retry"
311311
location = var.location
@@ -340,7 +340,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipts-to-notify-in-re
340340
# ReceiptToIoService execution logs that a receipt could not be notified (due to maximum retries, or failing to send to message queue)
341341
# https://github.com/pagopa/pagopa-receipt-pdf-notifier/blob/26067525b154796962168e661ee932d4e628f1be/src/main/java/it/gov/pagopa/receipt/pdf/notifier/service/impl/ReceiptToIOServiceImpl.java#L333
342342
resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-unable-to-notify-alert" {
343-
count = var.env_short != "d" ? 1 : 0
343+
count = var.env_short == "p" ? 1 : 0
344344
resource_group_name = "dashboards"
345345
name = "pagopa-${var.env_short}-unable-to-send-notify"
346346
location = var.location
@@ -374,7 +374,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-unable-to-notify
374374
# PDVTokenizerServiceImpl execution logs that an error using the PDV Tokenizer error has been encountered
375375
# https://github.com/pagopa/pagopa-receipt-pdf-notifier/blob/26067525b154796962168e661ee932d4e628f1be/src/main/java/it/gov/pagopa/receipt/pdf/notifier/service/impl/PDVTokenizerServiceImpl.java#L89
376376
resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-tokenizer-error-on-notify-alert" {
377-
count = var.env_short != "d" ? 1 : 0
377+
count = var.env_short == "p" ? 1 : 0
378378
resource_group_name = "dashboards"
379379
name = "pagopa-${var.env_short}-tokenizer-error-on-notify"
380380
location = var.location
@@ -413,7 +413,7 @@ resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-tokenizer-error-
413413
# AttachmentService execution logs that an error has been encountered on the PDV Tokenizer service
414414
# https://github.com/pagopa/pagopa-receipt-pdf-service/blob/main/src/main/java/it/gov/pagopa/receipt/pdf/service/service/impl/AttachmentServiceImpl.java#L96
415415
resource "azurerm_monitor_scheduled_query_rules_alert" "receipt-tokenizer-error-on-service-alert" {
416-
count = var.env_short != "d" ? 1 : 0
416+
count = var.env_short == "p" ? 1 : 0
417417
resource_group_name = "dashboards"
418418
name = "pagopa-${var.env_short}-tokenizer-error-on-service"
419419
location = var.location

src/domains/receipts-app/04_apim_receipts.tf

Lines changed: 9 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,13 @@ module "apim_receipts_product" {
1717
approval_required = true
1818
subscriptions_limit = 1000
1919

20-
policy_xml = file("./api_product/receipt-service/_base_policy.xml")
20+
policy_xml = file("./api_product/_base_policy.xml")
2121
}
2222

23-
#################
23+
########################
2424
## API Biz Events ##
25-
#################
25+
########################
2626
locals {
27-
apim_receipts_service_api = {
28-
display_name = "Receipts Service PDF"
29-
description = "API to handle receipts"
30-
path = "receipts/service"
31-
subscription_required = true
32-
service_url = null
33-
}
34-
3527
apim_receipts_helpdesk_api = {
3628
display_name = "Receipts Helpdesk PDF"
3729
description = "API to handle receipts helpdesk"
@@ -41,43 +33,6 @@ locals {
4133
}
4234
}
4335

44-
resource "azurerm_api_management_api_version_set" "api_receipts_api" {
45-
46-
name = format("%s-receipts-service-api", var.env_short)
47-
resource_group_name = local.pagopa_apim_rg
48-
api_management_name = local.pagopa_apim_name
49-
display_name = local.apim_receipts_service_api.display_name
50-
versioning_scheme = "Segment"
51-
}
52-
53-
54-
module "apim_api_receipts_api_v1" {
55-
source = "./.terraform/modules/__v3__/api_management_api"
56-
57-
name = format("%s-receipts-service-api", local.project)
58-
api_management_name = local.pagopa_apim_name
59-
resource_group_name = local.pagopa_apim_rg
60-
product_ids = [module.apim_receipts_product.product_id]
61-
subscription_required = local.apim_receipts_service_api.subscription_required
62-
version_set_id = azurerm_api_management_api_version_set.api_receipts_api.id
63-
api_version = "v1"
64-
65-
description = local.apim_receipts_service_api.description
66-
display_name = local.apim_receipts_service_api.display_name
67-
path = local.apim_receipts_service_api.path
68-
protocols = ["https"]
69-
service_url = local.apim_receipts_service_api.service_url
70-
71-
content_format = "openapi"
72-
content_value = templatefile("./api/receipt-service/v1/_openapi.json.tpl", {
73-
host = local.apim_hostname
74-
})
75-
76-
xml_content = templatefile("./api/receipt-service/v1/_base_policy.xml", {
77-
hostname = local.receipts_hostname
78-
})
79-
}
80-
8136
resource "azurerm_api_management_api_version_set" "api_receipts_helpdesk_api" {
8237

8338
name = format("%s-receipts-helpdesk-service-api", var.env_short)
@@ -87,14 +42,16 @@ resource "azurerm_api_management_api_version_set" "api_receipts_helpdesk_api" {
8742
versioning_scheme = "Segment"
8843
}
8944

90-
45+
/*
46+
@Deprecated
47+
*/
9148
module "apim_api_receipts_helpdesk_api_v1" {
9249
source = "./.terraform/modules/__v3__/api_management_api"
9350

9451
name = format("%s-receipts-helpdesk-api", local.project)
9552
api_management_name = local.pagopa_apim_name
9653
resource_group_name = local.pagopa_apim_rg
97-
product_ids = [module.apim_receipts_product.product_id, "technical_support_api"]
54+
product_ids = ["technical_support_api"]
9855
subscription_required = local.apim_receipts_helpdesk_api.subscription_required
9956
version_set_id = azurerm_api_management_api_version_set.api_receipts_helpdesk_api.id
10057
api_version = "v1"
@@ -111,6 +68,6 @@ module "apim_api_receipts_helpdesk_api_v1" {
11168
})
11269

11370
xml_content = templatefile("./api/receipt-helpdesk/v1/_base_policy.xml", {
114-
hostname = local.receipts_hostname
71+
hostname = "https://${local.receipts_hostname}"
11572
})
116-
}
73+
}

src/domains/receipts-app/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
| Name | Source | Version |
1818
|------|--------|---------|
1919
| <a name="module___v3__"></a> [\_\_v3\_\_](#module\_\_\_v3\_\_) | git::https://github.com/pagopa/terraform-azurerm-v3 | d0a0b3a81963169bdc974f79eba31e41e918e63d |
20-
| <a name="module_apim_api_receipts_api_v1"></a> [apim\_api\_receipts\_api\_v1](#module\_apim\_api\_receipts\_api\_v1) | ./.terraform/modules/__v3__/api_management_api | n/a |
2120
| <a name="module_apim_api_receipts_helpdesk_api_v1"></a> [apim\_api\_receipts\_helpdesk\_api\_v1](#module\_apim\_api\_receipts\_helpdesk\_api\_v1) | ./.terraform/modules/__v3__/api_management_api | n/a |
2221
| <a name="module_apim_receipts_product"></a> [apim\_receipts\_product](#module\_apim\_receipts\_product) | ./.terraform/modules/__v3__/api_management_product | n/a |
2322
| <a name="module_cert_mounter"></a> [cert\_mounter](#module\_cert\_mounter) | ./.terraform/modules/__v3__/cert_mounter | n/a |
@@ -31,7 +30,6 @@
3130

3231
| Name | Type |
3332
|------|------|
34-
| [azurerm_api_management_api_version_set.api_receipts_api](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/api_management_api_version_set) | resource |
3533
| [azurerm_api_management_api_version_set.api_receipts_helpdesk_api](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/api_management_api_version_set) | resource |
3634
| [azurerm_key_vault_secret.aks_apiserver_url](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_secret) | resource |
3735
| [azurerm_key_vault_secret.azure_devops_sa_cacrt](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_secret) | resource |
Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
11
<policies>
22
<inbound>
33
<base />
4-
<set-backend-service base-url="https://${hostname}/pagopa-receipt-pdf-helpdesk" />
4+
<set-variable name="backendBaseUrl"
5+
value="${hostname}"/>
6+
<!--
7+
Redirect Logic
8+
- healthCheck and GET Receipts and Cart operations -> pdf-service
9+
- Recover operations -> pdf-datastore
10+
- RegenerateReceiptPdf -> pdf-generator
11+
-->
12+
<choose>
13+
<when condition="@(context.Operation.Id == "RegenerateReceiptPdf")">
14+
<set-variable name="servicePath" value="pagopa-receipt-pdf-generator-helpdesk"/>
15+
</when>
16+
<when condition="@(new [] {
17+
"healthCheck", "GetReceipt", "GetReceiptByOrganizationFiscalCodeAndIUV",
18+
"GetReceiptMessage", "GetReceiptPdf", "GetReceiptError", "GetCart"
19+
}.Contains(context.Operation.Id))">
20+
<set-variable name="servicePath" value="pagopa-receipt-pdf-service-helpdesk"/>
21+
</when>
22+
<when condition="@(new [] {
23+
"ReceiptToReviewed", "RecoverFailedReceipt", "RecoverFailedReceiptMassive",
24+
"RecoverNotNotifiedReceipt", "RecoverNotNotifiedReceiptMassive"
25+
}.Contains(context.Operation.Id))">
26+
<set-variable name="servicePath" value="pagopa-receipt-pdf-datastore-helpdesk"/>
27+
</when>
28+
<otherwise>
29+
<set-variable name="servicePath" value="pagopa-receipt-pdf-helpdesk"/>
30+
</otherwise>
31+
</choose>
32+
<set-backend-service base-url="@((string)context.Variables["backendBaseUrl"] + "/"+ (string)context.Variables["servicePath"])"/>
533
</inbound>
634
<outbound>
7-
<base />
35+
<base />
836
</outbound>
937
<backend>
10-
<base />
38+
<base />
1139
</backend>
1240
<on-error>
13-
<base />
41+
<base />
1442
</on-error>
15-
</policies>
43+
</policies>

0 commit comments

Comments
 (0)