Ir al contenido

Operación

IZ-CentralForms se encuentra actualmente en ambiente local de desarrollo. Por lo tanto, no existe todavía una operación productiva activa con monitoreo formal, backups, alertas, rotación de logs o soporte 24/7.

Esta página define:

  • lo que aplica actualmente en local;
  • lo que debe validarse durante pruebas;
  • lo que aplicará después de un despliegue en QA, staging o producción.
ÁreaEstadoObservación
Ambiente localAplicaLa API se ejecuta localmente y se valida con Swagger, SDK o requests manuales.
Operación productivaNo aplica todavíaNo hay servidor productivo desplegado.
Monitoreo formalNo aplica todavíaSe definirá al existir QA/staging/producción.
Backups operativosNo aplica todavíaLocalDB es entorno de desarrollo.
Alertas automáticasNo aplica todavíaPendiente de infraestructura.
Revisión de logs productivosNo aplica todavíaNo hay IIS productivo ni monitoreo centralizado.
Validación funcionalAplicaGET formulario, POST submission, submissions e integration logs.

Cuando exista un ambiente desplegado, los controles mínimos serán:

ControlFuenteFrecuencia sugeridaAplica hoy
Disponibilidad APIGET /healthDiaria / automáticaSí, local
GET formularioAPI públicaPor despliegue o cambio
POST submissionAPI públicaPor despliegue o cambio
PersistenciaSQL / Admin endpointPor prueba funcional
IntegrationLogsSQL / Admin endpointPor prueba funcional
SMTPMailpit / proveedor SMTPPor prueba de emailSí, local
WebhookIntegrationLogs / sistema externoPor prueba de integraciónSi hay destino
Backups SQLJob / política DBAProducciónNo todavía
Certificado SSLMonitoreo certificadoQA/ProducciónNo todavía
Logs IISIIS / Event ViewerQA/ProducciónNo todavía
MétodoEndpointUsoSeguridad
GET/healthVerificar disponibilidad de la API.Sin header
GET/api/admin/submissionsListar submissions.X-Admin-Key
GET/api/admin/submissions/{submissionId}Consultar detalle de una submission.X-Admin-Key
GET/api/admin/integration-logsListar logs de email/webhook.X-Admin-Key
GET/api/admin/integration-logs/{integrationLogId}Consultar detalle de un integration log.X-Admin-Key
MétodoEndpointUsoHeaders
GET/api/forms/{consumerCode}/{formCode}Obtener formulario y CSRF.X-Api-Key; Origin esperado en navegador
POST/api/forms/{consumerCode}/{formCode}/submitEnviar submission.X-Api-Key, X-CSRF-Token, Content-Type; Origin esperado en navegador
  1. Ejecutar GET /health.
  2. Ejecutar GET /api/forms/demo/contacto.
  3. Copiar csrfToken.
  4. Ejecutar POST /api/forms/demo/contacto/submit.
  5. Confirmar respuesta 200 OK con submissionId.
  6. Validar registro en Submissions.
  7. Validar resultado de destinos en IntegrationLogs.
  8. Revisar Mailpit, Mailtrap, SMTP o sistema webhook si aplica.

Últimas submissions:

SELECT TOP 10 *
FROM Submissions
ORDER BY CreatedAt DESC;

Últimas integraciones:

SELECT TOP 10 *
FROM IntegrationLogs
ORDER BY StartedAt DESC;
EstadoSignificadoAcción
PendingDestino tomado para ejecución.Revisar si permanece demasiado tiempo.
SucceededDestino ejecutado correctamente.Sin acción.
FailedDestino ejecutado con error.Revisar ErrorMessage, StatusCode y configuración.
SkippedDestino omitido por configuración inválida o tipo no soportado.Corregir destino o tipo.
SíntomaCausa probableAcción
GET devuelve 401API Key ausente o inválida.Validar X-Api-Key y hash del consumer.
GET devuelve 401Consumer inactivo, API Key ausente o API Key inválida.Validar consumer y hash de API Key.
GET devuelve 403Origin no autorizado cuando el header fue informado.Validar AllowedOrigins.
GET devuelve 404Consumer o formulario inexistente.Validar consumerCode, formCode y seed/demo data.
POST devuelve 400Campos requeridos faltantes o formato inválido.Revisar body data y definición del formulario.
POST devuelve 401API Key ausente o inválida.Validar header y hash almacenado.
POST devuelve 403 OriginDominio no autorizado cuando el header fue informado.Registrar Origin exacto, sin path.
POST devuelve 403 CSRFToken expirado, reutilizado o incorrecto.Ejecutar GET nuevamente y usar nuevo csrfToken.
POST devuelve 429Rate limit superado.Esperar la ventana de rate limit o revisar tráfico.
POST devuelve 200 pero no llega emailSMTP o destino email incorrecto.Revisar FormDestinations, configuración Email e IntegrationLogs.
POST devuelve 200 pero webhook fallaURL destino inválida o sistema externo caído.Revisar IntegrationLogs, status code y error.
Swagger no carga JSON en IISRuta base incorrecta bajo aplicación virtual.Usar ruta relativa v1/swagger.json.
API falla en IIS con LocalDBLocalDB no disponible para Application Pool.Migrar a SQL Server real.
SeveridadCriterioAcción
AltaAPI caída o submissions no se guardan.Atención inmediata por responsable técnico e infraestructura.
MediaEmail o webhook fallan, pero submissions se guardan.Revisar configuración e IntegrationLogs.
BajaAjustes de formulario, origins, documentación o pruebas.Planificar según prioridad del equipo.
TareaAplica hoyAplica en producción
Validar /health
Revisar submissions de prueba
Revisar IntegrationLogs
Validar SMTPSí, con Mailpit/MailtrapSí, con proveedor real
Validar webhookSi hay destino configuradoSí, si aplica
Validar backups SQLNo
Revisar certificados SSLNo
Revisar logs IISNo
Revisar alertas automáticasNoSí, cuando existan
GET /api/forms/demo/contacto
X-Api-Key: demo-api-key
Origin: https://localhost:7122

Resultado esperado:

  • 200 OK
  • Respuesta con fields
  • Respuesta con csrfToken
POST /api/forms/demo/contacto/submit
X-Api-Key: demo-api-key
X-CSRF-Token: TOKEN_DEL_GET
Origin: https://localhost:7122
Content-Type: application/json

Body:

{
"data": {
"nombre": "Usuario Demo",
"email": "demo@interzone.net",
"mensaje": "Prueba de CentralForms"
}
}

Resultado esperado:

  • 200 OK
  • success: true
  • submissionId
GET /api/admin/submissions
X-Admin-Key: demo-admin-key
GET /api/admin/integration-logs
X-Admin-Key: demo-admin-key
  1. Ejecutar GET /health.
  2. Autorizar ApiKey con demo-api-key.
  3. Ejecutar GET /api/forms/demo/contacto con Origin.
  4. Copiar csrfToken.
  5. Autorizar CsrfToken.
  6. Ejecutar POST /api/forms/demo/contacto/submit.
  7. Autorizar AdminKey con demo-admin-key.
  8. Ejecutar GET /api/admin/submissions.
  9. Ejecutar GET /api/admin/integration-logs.
SíntomaAcción recomendada
Build falla por DLL bloqueadaCerrar la API o ejecutar Get-Process dotnet | Stop-Process -Force, luego dotnet clean y dotnet build.
EF Core no encuentra el proyectoEjecutar comandos desde la raíz del repositorio y usar --project con Infrastructure y --startup-project con Api.
API Key demo inválidaConfirmar que Consumers.ApiKeyHash tenga el SHA-256 de demo-api-key.
Origin no autorizadoVerificar que AllowedOrigins.OriginUrl coincida exactamente con el header Origin.
CSRF inválidoRepetir GET formulario y usar el nuevo csrfToken; los tokens son de un solo uso.
No llega email a MailpitValidar Mailpit en localhost:8025, SMTP en localhost:1025, destino email activo e IntegrationLogs.
Webhook no llegaValidar destino webhook activo, URL externa y StatusCode en IntegrationLogs.
Rate limit 429Esperar la siguiente ventana o revisar tráfico de prueba.

Mientras no exista un ambiente desplegado fuera de local, no aplican formalmente:

  • monitoreo 24/7;
  • alertas automáticas;
  • SLA operativo;
  • rotación formal de logs IIS;
  • política productiva de backups;
  • revisión de certificados SSL;
  • hardening de servidor;
  • runbooks de incidente productivo;
  • escalamiento con proveedor de infraestructura.