Añadir endpoint de campos para Gestiona y adaptar login GlobalLeaks a DPoP

- Añade GET /api/denuncias/{id}/gestiona-fields para exponer los campos diarios requeridos por la integración con Gestiona.
- Devuelve un DTO cerrado con fecha, canal, resumen, datos de hechos, protección, sexo y preferencias de notificación.
- Adapta el login contra GlobalLeaks al nuevo flujo DPoP exigido desde la versión 5.0.94.
- Genera proof DPoP con clave EC P-256 efímera y lo envía en la cabecera DPoP junto a X-Token.
- Mejora el mensaje de error cuando GlobalLeaks rechaza el proof DPoP.
This commit is contained in:
2026-07-09 14:55:29 +02:00
parent d84d41b0e0
commit b6c61238a5
47 changed files with 16592 additions and 719 deletions

View File

@@ -36,12 +36,16 @@ public sealed record MarkReportImportedRequest(
ReportDto Report,
int? ComplaintId);
public sealed record MarkReportHandledInGestionaRequest(
string Username,
int DenunciaId,
DateTime UploadedAtUtc);
public sealed record TrackingImportPermissionRequest(
string Username,
ReportDto Report);
public sealed record GestionaCreateFileRequest(
Guid ProcedureId,
string Subject,
string DocumentSeries,
string SiaCode);
@@ -53,16 +57,22 @@ public sealed record GestionaCreateFileResponse(
public sealed record GestionaOpenFileRequest(
string FileUrl,
string? FileOpenUrl,
Guid ManagementUnitGroupId,
Guid AssignedGroupId,
string AssignedGroupCode,
bool Confidential,
string FreeTitle,
string SiaCode);
string FreeTitle);
public sealed record GestionaAssignFileRequest(
string FileUrl,
string AssignedGroupCode);
public sealed record GestionaEnsureThirdRequest(
string FileUrl,
ThirdPartyIdentityData ThirdParty);
public sealed record GestionaEnsureThirdResponse(
bool Ok,
IReadOnlyList<string> Warnings);
public sealed record GestionaCreateFolderRequest(
string FileUrl,
string FolderName);
@@ -80,8 +90,9 @@ public sealed record GestionaUploadDocumentResponse(string DocumentUrl);
public sealed record GestionaTramitarDocumentoRequest(
string DocumentUrl,
string AssignedGroupHref,
int? ComplaintId);
string AssignedGroupCode,
int? ComplaintId,
bool IsUpdate = false);
public sealed record ManualPurgeRequest(string Date);
@@ -91,6 +102,23 @@ public sealed record ManualPurgeResponse(
int StatusCode,
string ResponseBody);
public sealed record AppConfigurationDto(string? ExternalUpdateCutoffDate);
public sealed record AppConfigurationDto(
string? ExternalUpdateCutoffDate,
string? LatestEncryptionKeyDate = null,
string? LatestEncryptionKeyStatus = null);
public sealed record UpdateExternalUpdateCutoffRequest(string? Date);
public sealed record GestionaComplaintFieldsResponse(
DateTime? FechaDenuncia,
int NumeroDenunciaCanal,
string AQuienDenuncia,
string ResumenDenuncia,
string FechaHechos,
string LugarHechos,
string AmbitoCompetencias,
string SolicitaProteccion,
string SexoDenunciante,
string AutorizaRemisionDenuncia,
string AutorizaNotificacionesViaSms,
string PreferenciaNotificacionSeguimientoDenuncia);