Skip to content

Commit 1eea76a

Browse files
[SELC-7635] Add telemetry tracking for onboarding functions
1 parent 0cfd5be commit 1eea76a

File tree

8 files changed

+555
-363
lines changed

8 files changed

+555
-363
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package it.pagopa.selfcare.onboarding.config;
2+
3+
import com.microsoft.applicationinsights.TelemetryClient;
4+
import com.microsoft.applicationinsights.TelemetryConfiguration;
5+
import jakarta.enterprise.context.ApplicationScoped;
6+
import jakarta.enterprise.inject.Produces;
7+
import jakarta.inject.Singleton;
8+
import org.eclipse.microprofile.config.inject.ConfigProperty;
9+
10+
@ApplicationScoped
11+
public class TelemetryClientProducer {
12+
13+
@Produces
14+
@Singleton
15+
public TelemetryClient telemetryClient(
16+
@ConfigProperty(name = "onboarding-functions.appinsights.connection-string")
17+
String appInsightsConnectionString) {
18+
TelemetryConfiguration telemetryConfiguration = TelemetryConfiguration.createDefault();
19+
telemetryConfiguration.setConnectionString(appInsightsConnectionString);
20+
return new TelemetryClient(telemetryConfiguration);
21+
}
22+
}

apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/document/PdfBuilder.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import java.io.File;
1515
import java.io.FileOutputStream;
16+
import java.io.IOException;
1617
import java.nio.file.Files;
1718
import java.nio.file.Path;
1819
import java.nio.file.attribute.FileAttribute;
@@ -34,12 +35,13 @@ public class PdfBuilder {
3435

3536
public static File generateDocument(String documentName,
3637
String documentTemplate,
37-
Map<String, Object> content) {
38+
Map<String, Object> content) throws IOException {
3839
Path temporaryPdfFile = null;
3940
Path temporaryDirectory = null;
41+
String nameFile = null;
4042

4143
try {
42-
String nameFile = DATE_TIME_FORMATTER.format(LocalDateTime.now())
44+
nameFile = DATE_TIME_FORMATTER.format(LocalDateTime.now())
4345
+ "_" + UUID.randomUUID()
4446
+ "_" + documentName;
4547

@@ -66,6 +68,18 @@ public static File generateDocument(String documentName,
6668

6769
return temporaryPdfFile.toFile();
6870

71+
} catch (UnsupportedOperationException e) {
72+
// Fallback per sistemi non-POSIX (es. Windows in locale)
73+
File f = Files.createTempFile(nameFile, ".pdf").toFile();
74+
75+
boolean readable = f.setReadable(true, true); // true = leggibile, true = solo owner
76+
boolean writable = f.setWritable(true, true); // true = scrivibile, true = solo owner
77+
boolean executable = f.setExecutable(false); // FIX: false = NON eseguibile (più sicuro)
78+
79+
if (!readable || !writable || !executable) {
80+
log.warn("Could not set restricted permissions on temporary file: {}", f.getAbsolutePath());
81+
}
82+
return f;
6983
} catch (Exception e) {
7084
log.error("Error while generating PDF", e);
7185
if (temporaryPdfFile != null) {

0 commit comments

Comments
 (0)