Ir al contenido

Infraestructura

IZ-CentralForms se encuentra actualmente en ambiente local de desarrollo. La aplicación está preparada para ejecutarse localmente como ASP.NET Core Web API y para una futura publicación en Windows Server con IIS, SQL Server real y SMTP externo.

Esta página documenta la infraestructura actual, la infraestructura objetivo y las condiciones mínimas para pasar de local a QA, staging o producción.

ElementoConfiguración actual
APIASP.NET Core Web API net10.0
EjecuciónPerfiles locales http y https
URLs localeshttp://localhost:5273 / https://localhost:7122
AmbienteDevelopment
Base de datosSQL Server LocalDB: (localdb)\MSSQLLocalDB
SwaggerHabilitado en desarrollo
Email localSMTP localhost:1025
SDK JSServido desde wwwroot/sdk/centralforms.js
Ejemplo SDKwwwroot/examples/contacto.html
Seed demoActivo en desarrollo
ProducciónNo desplegada todavía

El ambiente local usa la siguiente composición:

ASP.NET Core local
+ SQL Server LocalDB
+ Swagger
+ SDK estático desde wwwroot
+ SMTP local / Mailpit
Servicio localUso
API localEjecutar y probar CentralForms.Api.
SQL Server LocalDBPersistir formularios, submissions, tokens CSRF e integration logs en desarrollo.
SwaggerProbar endpoints manualmente.
SDK JSValidar integración desde HTML local.
SMTP localProbar envío de correos sin usar un proveedor real.

Para QA, staging o producción, el modelo recomendado es:

Windows Server
+ IIS
+ .NET Hosting Bundle
+ SQL Server real
+ SMTP externo
+ HTTPS
ComponenteRequisito
Sistema operativoWindows Server
HostingIIS con Application Pool dedicado
Runtime.NET Hosting Bundle compatible con net10.0
Base de datosSQL Server Express, Standard o Enterprise
Configuraciónappsettings.Production.json o variables de entorno
EmailSMTP real, Mailtrap, Resend o proveedor corporativo
SeguridadHTTPS obligatorio
SwaggerRestringido o deshabilitado en producción
LogsIIS logs, logs de aplicación e IntegrationLogs
AmbienteAPIBase de datosEmailSwaggerObservación
LocalASP.NET Core localLocalDBlocalhost:1025 / MailpitHabilitadoAmbiente actual
QA / StagingIIS recomendadoSQL Server realMailtrap o SMTP realHabilitado o restringidoPendiente
ProducciónIIS recomendadoSQL Server realSMTP real autorizadoRestringido o deshabilitadoPendiente
Aplicación consumidora
|
| HTTPS
v
CentralForms API en IIS
|
| EF Core
v
SQL Server
|
+--> SMTP externo
|
+--> Webhook externo

Para desplegar CentralForms fuera del entorno local se requiere:

  • Windows Server.
  • IIS habilitado.
  • .NET Hosting Bundle compatible con net10.0.
  • SQL Server real.
  • Certificado SSL válido.
  • Proveedor SMTP o sandbox autorizado.
  • Permisos para crear Application Pool.
  • Permisos para publicar la aplicación.
  • Acceso a logs IIS y Event Viewer.
  • Política de backup de base de datos.

La configuración local usa LocalDB:

Server=(localdb)\MSSQLLocalDB;Database=CentralFormsDb;Trusted_Connection=True;MultipleActiveResultSets=true

En IIS se debe usar una instancia real de SQL Server:

.\SQLEXPRESS
localhost
SERVIDOR_SQL
SERVIDOR_SQL\INSTANCIA

Ejemplo de connection string para servidor:

Server=SERVIDOR_SQL;Database=CentralFormsDb;User Id=USUARIO_SQL;Password=PASSWORD_SQL;TrustServerCertificate=True;MultipleActiveResultSets=true
ConfiguraciónLocalServidor
AmbienteDevelopmentProduction
Connection stringLocalDBSQL Server real
SwaggerHabilitadoRestringido o deshabilitado
Seed demoActivoDesactivado
EmailSMTP local / MailpitSMTP real
SecretsDemo / localVariables de entorno o mecanismo seguro

Configuración recomendada para publicación futura:

ElementoValor recomendado
Application PoolCentralForms.Api
.NET CLR VersionNo Managed Code
Managed Pipeline ModeIntegrated
IdentityApplicationPoolIdentity
Physical PathC:\inetpub\wwwroot\CentralForms.Api
HTTPS BindingObligatorio fuera de local

Ejecutar en orden para preparar un ambiente:

sql/deploy/00-create-database.sql
sql/deploy/01-create-schema.sql
sql/deploy/02-seed-demo.sql
sql/deploy/03-add-demo-destinations.sql
sql/deploy/04-verify-deploy.sql

Script opcional para pruebas desde Swagger en IIS local:

sql/deploy/05-add-localhost-iis-origins.sql
RutaUso
CentralForms.Api/Proyecto principal de API
CentralForms.Api/Properties/launchSettings.jsonPerfiles locales
CentralForms.Api/wwwroot/sdk/SDK JavaScript
CentralForms.Api/wwwroot/examples/Ejemplos locales
CentralForms.Infrastructure/Migrations/Migraciones EF Core
sql/deploy/Scripts SQL
scripts/Scripts de publicación y utilidades
publish/CentralForms.ApiSalida esperada de publicación
C:\inetpub\wwwroot\CentralForms.ApiRuta sugerida en IIS
ServicioUsoEstado
MailpitCaptura SMTP localRecomendado local
MailtrapSandbox SMTPOpcional QA
Resend / SMTP corporativoEnvío productivoPendiente
Webhook externoIntegración con CRM, ERP u otros sistemasSegún cliente
DNS / dominioURL pública de APIPendiente
Certificado SSLHTTPSPendiente fuera de local
ÁreaCriterio
HTTPSObligatorio fuera de local
SwaggerNo exponer públicamente en producción
SQL ServerUsar usuario con permisos mínimos necesarios
SecretsUsar variables de entorno o mecanismo seguro
FirewallExponer solo puertos requeridos
LogsNo registrar secretos ni tokens completos
WebhooksValidar URL, timeout y manejo de errores

Antes de considerar un ambiente listo, validar:

ValidaciónResultado esperado
API iniciaSin errores de runtime
/health respondeServicio disponible
SQL Server conectaLectura y escritura correctas
Swagger cargaSolo si está habilitado
SDK JS respondeArchivo disponible
SMTP funcionaResultado visible en IntegrationLogs
Webhook funcionaResultado visible en IntegrationLogs
HTTPS activoCertificado válido
Logs disponiblesIIS, aplicación e integration logs accesibles
PendientePrioridad
Definir servidor QA/StagingAlta
Definir servidor producciónAlta
Definir dominio público de APIAlta
Configurar certificado SSLAlta
Definir proveedor SMTP productivoAlta
Definir política de backupsAlta
Definir retención de logsMedia
Definir monitoreo y alertasMedia