Saltar a contenido

Referencia: appsettings.json

El archivo appsettings.json del Backend contiene toda la configuración de la aplicación. El Asistente de Configuración gestiona automáticamente las claves principales; el resto raramente requiere intervención manual.

En IIS y en un contenedor de producción, las contraseñas y claves de este fichero se guardan cifradas: ver Cifrado de los appsettings.

Los administradores pueden consultar y cambiar la mayoría de estas claves, del Backend y del Frontend, desde la propia aplicación: ver Configuración de la aplicación.


Backend — appsettings.json completo

JSON
{
  "Kestrel": { // (1)!
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:7110"
      }
    }
  },
  "ProjectName": "RENAME", // (2)!
  "Logging": { // (3)!
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "EventLog": {
      "LogLevel": {
        "Default": "Warning",
        "Microsoft.AspNetCore": "Warning"
      }
    }
  },
  "ConnectionStrings": { // (4)!
    "ConfConnectionString": "Data Source=localhost;Initial Catalog=RENAME;User ID=sa;Password=;Encrypt=False;Trust Server Certificate=True",
    "DataConnectionString": "Data Source=localhost;Initial Catalog=RENAME;User ID=sa;Password=;Encrypt=False;Trust Server Certificate=True"
  },
  "MailSettings": { // (5)!
    "From": "",
    "Host": "",
    "Port": 25,
    "Ssl": false,
    "UserName": "",
    "Password": "",
    "Configured": false
  },
  "DatabaseNuget": { // (6)!
    "PackageId": "Flexygo.Conf.Database",
    "NugetUrl": "https://nuget.ahorabh.com/v3/index.json",
    "PreReleaseVersions": false
  },
  "DisableCronJobs": false, // (7)!
  "DisableScriptJobs": false,
  "FrontendEndpoint": "", // (8)!
  "AllowedHosts": "*",
  "WebApiOrigins": "*", // (9)!
  "DebugUpdater": false // (10)!
}
  1. Kestrel — Puerto en el que escucha el Backend. Configurado por el instalador según el entorno. Solo modificar si cambias el puerto manualmente.
  2. ProjectName — Nombre del proyecto/producto. El instalador lo rellena con el nombre del producto instalado.
  3. Logging — Niveles de log de la aplicación y del Event Log de Windows. Los valores por defecto son adecuados para producción.
  4. ConnectionStrings — Cadenas de conexión a las dos bases de datos. El Asistente de Configuración las genera y actualiza automáticamente. ConfConnectionString apunta a la BD de configuración y DataConnectionString a la BD de datos.
  5. MailSettings — Parámetros del servidor SMTP. Configurados por el Asistente. La clave Configured viene a false en la plantilla y el asistente la pone a true al guardar el correo; mientras sea false, el asistente vuelve a solicitar la configuración de correo.
  6. DatabaseNuget — Fuente NuGet desde donde el sistema comprueba actualizaciones de la base de datos de configuración. No modificar salvo que uses un feed NuGet corporativo propio.
  7. DisableCronJobs y DisableScriptJobs — DisableCronJobs deshabilita las tareas programadas internas de Flexygo (Cron Jobs) y DisableScriptJobs, los trabajos de script de base de datos que se lanzan al arrancar. Útiles en entornos de prueba, en copias que apuntan a una base compartida o cuando hay varias instancias del Backend. Solo el valor true las apaga. Se leen de este fichero, que manda sobre cualquier otro sitio (la tabla de ajustes no cuenta), y solo al arrancar: después de cambiarlas hay que reiniciar el Backend.
  8. FrontendEndpoint — URL del Frontend tal como la conoce el Backend. Viene vacía en la plantilla y la configura automáticamente el instalador (por ejemplo, http://localhost:7111). Solo modificar en caso de cambio de dominio o puerto tras la instalación.
  9. WebApiOrigins — Orígenes permitidos para las peticiones CORS a la API. "*" permite cualquier origen. Restringir en producción si se requiere.
  10. DebugUpdater — Activa el modo de depuración del actualizador. Solo para diagnóstico; mantener en false en producción.

Claves generadas automáticamente (Backend)

Al arrancar la aplicación por primera vez, el sistema genera y persiste en appsettings.json las siguientes claves de seguridad. El usuario no debe modificarlas salvo en escenarios muy específicos (p.ej. rotación de claves en entornos con múltiples instancias):

Clave Propósito
JwtSettings.SecretKey Firma de los tokens JWT de autenticación
DataProtection.ApplicationId Identificador de la aplicación para el cifrado de datos sensibles
DataProtection.Key Clave de cifrado para la protección de datos de ASP.NET Core

Estas claves no aparecen en el archivo hasta el primer arranque y son invisibles para el usuario en el flujo normal de instalación y configuración.


Frontend — appsettings.json completo

JSON
{
  "Kestrel": { // (1)!
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:7111"
      }
    }
  },
  "Logging": { // (2)!
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "EventLog": {
      "LogLevel": {
        "Default": "Warning",
        "Microsoft.AspNetCore": "Warning"
      }
    }
  },
  "BackendEndpoint": "", // (3)!
  "AllowedHosts": "*",
  "WebApiOrigins": "*", // (4)!
  "DebugUpdater": false, // (5)!
  "EnableWindowsAuth": false // (6)!
}
  1. Kestrel — Puerto en el que escucha el Frontend. Configurado por el instalador. Solo modificar si cambias el puerto manualmente.
  2. Logging — Niveles de log. Idéntico al Backend; los valores por defecto son adecuados para producción.
  3. BackendEndpoint — URL de la API del Backend que el Frontend consume. Viene vacía en la plantilla y la configura automáticamente el instalador (por ejemplo, http://localhost:7110/api/backend/). Solo modificar en caso de cambio de dominio o puerto tras la instalación.
  4. WebApiOrigins — Orígenes permitidos para CORS. "*" permite cualquier origen. Restringir en producción si se requiere.
  5. DebugUpdater — Activa el modo de depuración del actualizador en el Frontend. Mantener en false en producción.
  6. EnableWindowsAuth — Activa el inicio de sesión integrado de Windows (NTLM/Kerberos). Requiere que IIS tenga habilitadas tanto la autenticación anónima como la de Windows. Mantener en false salvo que se use inicio de sesión automático contra LDAP.

Claves opcionales (Frontend y Backend)

No vienen en la plantilla y sólo se añaden cuando hacen falta:

Clave Propósito
ForwardedHeaders.KnownProxies Direcciones IP de los proxies inversos de confianza, para que la aplicación acepte de ellos la IP real del cliente. Ver Despliegue tras un proxy inverso
HttpsRedirection (solo Frontend) Redirige a https las peticiones que llegan por http. Si no está, vale true. Ponerla en false únicamente cuando un proxy inverso delante ya obliga a https; ver Despliegue tras un proxy inverso

Claves generadas automáticamente (Frontend)

Al igual que el Backend, el Frontend genera y persiste estas claves en el primer arranque. No modificar salvo casos muy específicos:

Clave Propósito
JwtSettings.SecretKey Verificación de los tokens JWT recibidos del Backend
DataProtection.ApplicationId Identificador para el cifrado de datos de sesión
DataProtection.Key Clave de cifrado para la protección de datos de ASP.NET Core