Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Opciones de configuración que determinan el comportamiento en tiempo de ejecución.
Configuración de paginación
| Property | Default | Description |
|---|---|---|
| runtime.pagination.max-page-size | Define el máximo de registros por página | |
| runtime.pagination.default-page-size | Establece registros predeterminados por respuesta |
Configuración de REST
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
Ruta de acceso base para puntos de conexión REST |
| runtime.rest.enabled | true |
Permite habilitar o deshabilitar solicitudes REST para todas las entidades |
| runtime.rest.request-body-strict | true |
No permite campos extraños en el cuerpo de la solicitud cuando es true |
Configuración de GraphQL
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Permite consultar el esquema de GraphQL subyacente. |
| runtime.graphql.path | "/graphql" |
Ruta de acceso base para el punto de conexión de GraphQL |
| runtime.graphql.enabled | true |
Permite habilitar o deshabilitar solicitudes de GraphQL para todas las entidades |
| runtime.graphql.depth-limit | null |
Profundidad máxima permitida de una consulta GraphQL |
| runtime.graphql.multiple-mutations.create.enabled | false |
Permite mutaciones de creación múltiple para todas las entidades |
Configuración del host
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Tamaño máximo (MB) de la respuesta de base de datos permitida en un único resultado |
| runtime.host.mode | "production" |
Modo de ejecución; "production" o "development" |
Configuración de CORS
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Orígenes de CORS permitidos |
| runtime.host.cors.allow-credentials | false |
Establece el valor del encabezado Access-Control-Allow-Credentials |
Configuración de autenticación
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | null |
Proveedor de autenticación |
| runtime.host.authentication.jwt.audience | null |
Audiencia de JWT |
| runtime.host.authentication.jwt.issuer | null |
Emisor de JWT |
Configuración de caché
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Habilita el almacenamiento en caché de respuestas globalmente |
| runtime.cache.ttl-seconds | 5 |
Período de vida (segundos) para la caché global |
Configuración de telemetría
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Cadena de conexión de Application Insights |
| runtime.telemetry.application-insights.enabled | false |
Habilita o deshabilita la telemetría de Application Insights |
| runtime.telemetry.open-telemetry.endpoint | null |
Dirección URL del recopilador de OpenTelemetry |
| runtime.telemetry.open-telemetry.headers | {} |
Encabezados de exportación de OpenTelemetry |
| runtime.telemetry.open-telemetry.service-name | "dab" |
Nombre del servicio OpenTelemetry |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
Protocolo OpenTelemetry ("grpc" o "httpprotobuf") |
| runtime.telemetry.open-telemetry.enabled | true |
Habilita o deshabilita OpenTelemetry |
| runtime.telemetry.log-level.namespace | null |
Invalidación del nivel de registro específico del espacio de nombres |
| runtime.health.enabled | true |
Habilita o deshabilita el punto de conexión de comprobación de estado globalmente. |
| runtime.health.roles | null |
Roles permitidos para el punto de conexión de mantenimiento completo |
| runtime.health.cache-ttl-seconds | 5 |
Período de vida (segundos) para la entrada de caché del informe de comprobación de estado |
| runtime.health.max-query-parallelism | 4 |
Número máximo de consultas de comprobación de estado simultáneas (intervalo: 1-8) |
Introducción al formato
{
"runtime": {
"pagination": {
"max-page-size": <integer|null> (default: `100000`),
"default-page-size": <integer|null> (default: `100`)
},
"rest": {
"path": <string> (default: "/api"),
"enabled": <true>|<false>,
"request-body-strict": <true>|<false> (default: `true`)
},
"graphql": {
"path": <string> (default: "/graphql"),
"enabled": <true>|<false>,
"allow-introspection": <true>|<false>,
"depth-limit": <integer|null> (default: `null`),
"multiple-mutations": {
"create": {
"enabled": <true>|<false> (default: `false`)
}
}
},
"host": {
"mode": <"production"> (default) | <"development">,
"max-response-size-mb": <integer|null> (default: `158`),
"cors": {
"origins": [ "<string>" ],
"allow-credentials": <true>|<false> (default: `false`)
},
"authentication": {
"provider": <string> (default: "AppService"),
"jwt": {
"audience": "<string>",
"issuer": "<string>"
}
}
}
},
"cache": {
"enabled": <true>|<false> (default: `false`),
"ttl-seconds": <integer> (default: `5`)
},
"telemetry": {
"application-insights": {
"connection-string": "<string>",
"enabled": <true>|<false> (default: `true`)
},
"open-telemetry": {
"endpoint": "<string>",
"headers": "<string>",
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc"> (default) | <"httpprotobuf">,
"enabled": <true>|<false> (default: `true`)
},
"log-level": {
// namespace keys
"<namespace>": <"trace"|"debug"|"information"|"warning"|"error"|"critical"|"none"|null>
}
},
"health": {
"enabled": <true>|<false> (default: `true`),
"roles": [ "<string>" ],
"cache-ttl-seconds": <integer> (default: `5`),
"max-query-parallelism": <integer> (default: `4`)
}
}
Modo (tiempo de ejecución del host)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
host |
enumeración (production | development) |
❌ No | production |
Comportamiento de desarrollo
- Nitro habilitado (anteriormente Banana Cake Pop) para las pruebas de GraphQL
- Interfaz de usuario de Swagger habilitada para pruebas REST
- Comprobaciones de estado anónimas habilitadas
- Mayor detalle de registro (depuración)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Tamaño máximo de respuesta (tiempo de ejecución del host)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
integer | ❌ No | 158 |
Establece el tamaño máximo (en megabytes) para cualquier resultado determinado. Como las respuestas grandes pueden tensar el sistema, max-response-size-mb limita el tamaño total (diferente del recuento de filas) para evitar la sobrecarga, que es especialmente con columnas grandes como texto o JSON.
| Value | Result |
|---|---|
| no establecido | Usar el valor predeterminado |
null |
Usar el valor predeterminado |
integer |
Entero positivo de 32 bits |
<= 0 |
No está soportado |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
object | ❌ No | - |
Configuración global de GraphQL.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ No | None |
runtime.graphql |
path |
string | ❌ No | "/graphql" |
runtime.graphql |
depth-limit |
integer | ❌ No | Ninguno (ilimitado) |
runtime.graphql |
allow-introspection |
boolean | ❌ No | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ No | False |
Notas de la propiedad
- No se permiten subrutas para la
pathpropiedad . - Use
depth-limitpara restringir las consultas anidadas. - Establézcalo
allow-introspectionenfalsepara ocultar el esquema de GraphQL. - Se usa
multiple-mutationspara insertar varias entidades en una sola mutación.
Format
{
"runtime": {
"graphql": {
"enabled": <true> (default) | <false>
"depth-limit": <integer|null> (default: `null`),
"path": <string> (default: /graphql),
"allow-introspection": <true> (default) | <false>,
"multiple-mutations": {
"create": {
"enabled": <true> (default) | <false>
}
}
}
}
Ejemplo: varias mutaciones
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
Mutación de GraphQL
mutation {
createUsers(input: [
{ name: "Alice", age: 30, isAdmin: true },
{ name: "Bob", age: 25, isAdmin: false },
{ name: "Charlie", age: 35, isAdmin: true }
]) {
id
name
age
isAdmin
}
}
REST (tiempo de ejecución)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
rest |
object | ❌ No | - |
Configuración de REST global.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ No | None |
runtime.rest |
path |
string | ❌ No | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ No | True |
Notas de la propiedad
- Si global
enabledesfalse, el nivelenabledde entidad individual no importa. - La
pathpropiedad no admite valores de subruta como/api/data. -
request-body-strictse introdujo para ayudar a simplificar los objetos POCO de .NET.
request-body-strict |
Behavior |
|---|---|
true |
Los campos adicionales del cuerpo de la solicitud provocan una BadRequest excepción. |
false |
Se omiten los campos adicionales del cuerpo de la solicitud. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Ejemplo: request-body-strict
- Las columnas con un
default()valor se omiten solo cuandoINSERTsu valor en la carga esnull. Como consecuencia,INSERTlas operaciones endefault()columnas, cuandorequest-body-strictestrue, no pueden dar lugar a valores explícitosnull. Para lograr este comportamiento, se requiere unaUPDATEoperación. - Las columnas con un
default()no se omiten durante independientementeUPDATEdel valor de carga. - Las columnas calculadas siempre se omiten.
- Las columnas generadas automáticamente siempre se omiten.
Tabla de ejemplo
CREATE TABLE Users (
Id INT PRIMARY KEY IDENTITY, -- auto-generated column
Name NVARCHAR(50) NOT NULL,
Age INT DEFAULT 18, -- column with default
IsAdmin BIT DEFAULT 0, -- column with default
IsMinor AS IIF(Age <= 18, 1, 0) -- computed column
);
Carga de solicitud
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Insertar comportamiento cuando request-body-strict = false
INSERT INTO Users (Name) VALUES ('Alice');
-- Default values for Age (18) and IsAdmin (0) are applied by the database.
-- IsMinor is ignored because it’s a computed column.
-- ExtraField is ignored.
-- The database generates the Id value.
Carga de respuesta
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Comportamiento de actualización cuando request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Carga de respuesta
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (tiempo de ejecución de host)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
object | ❌ No | - |
Configuración de CORS global.
Tip
CORS significa "Uso compartido de recursos entre orígenes". Se trata de una característica de seguridad del explorador que controla si las páginas web pueden realizar solicitudes a un dominio diferente al que les ha servido.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ No | False |
runtime.host.cors |
origins |
matriz de cadena | ❌ No | None |
Note
La allow-credentials propiedad establece el Access-Control-Allow-Credentials encabezado CORS.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> (default) | <false>,
"origins": ["<array-of-strings>"]
}
}
}
}
Note
El carácter comodín * es válido como un valor para origins.
Proveedor (entorno de ejecución del host de autenticación)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
enumeración (AppService | EntraId | Custom | Simulator) |
❌ No | None |
Selecciona el método de autenticación. Cada proveedor valida la identidad de forma diferente. Para la configuración paso a paso, consulte las guías paso a paso vinculadas a continuación.
Resumen del proveedor
| Provider | Caso de uso | Origen de identidad | Guía paso a paso |
|---|---|---|---|
| (omitido) | Acceso solo anónimo | None | — |
AppService |
Aplicaciones hospedadas en Azure (EasyAuth) | Encabezado X-MS-CLIENT-PRINCIPAL |
Configuración de la autenticación de App Service |
EntraID |
Microsoft Entra ID (Azure AD) | Token de portador JWT | Configurar la autenticación Entra ID |
Custom |
IdP de terceros (Okta, Auth0) | Token de portador JWT | Configuración de la autenticación JWT personalizada |
Simulator |
Solo pruebas locales | Simulada | Configuración de la autenticación del simulador |
Note
Anteriormente, el EntraId proveedor se denominaba AzureAd. El nombre anterior sigue funcionando por compatibilidad.
Solo anónimo (sin proveedor)
Cuando se omite la authentication sección, DAB funciona en modo de solo anónimo. A todas las solicitudes se les asigna el rol del Anonymous sistema.
{
"host": {
// authentication section omitted
}
}
AppService
Confía en los encabezados de identidad insertados por EasyAuth de Azure App Service.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Valida los tokens JWT emitidos por microsoft Entra ID.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Custom
Valida tokens JWT de proveedores de identidades de terceros.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Simulador
Simula la autenticación para el desarrollo y las pruebas locales.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
El Simulator proveedor solo funciona cuando runtime.host.mode es development. DAB no se inicia si el simulador está configurado en modo de producción.
Selección de roles
Para todos los proveedores excepto Simulador, el X-MS-API-ROLE encabezado selecciona qué rol se va a usar en las notificaciones del usuario autenticado. Si se omite, la solicitud usa el rol del Authenticated sistema. Para más información sobre la evaluación de roles, consulte Autorización y roles.
JWT (entorno de ejecución del host de autenticación)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
object | ❌ No | - |
Configuración global de JSON Web Token (JWT).
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
string | ❌ No | None |
runtime.host.authentication.jwt |
issuer |
string | ❌ No | None |
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Paginación (tiempo de ejecución)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
object | ❌ No | - |
Límites de paginación global para puntos de conexión REST y GraphQL.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ No | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ No | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ No | false |
Valores admitidos de tamaño máximo de página
| Value | Result |
|---|---|
integer |
Se admite cualquier entero positivo de 32 bits. |
0 |
No está soportado. |
-1 |
El valor predeterminado es el valor máximo admitido. |
< -1 |
No está soportado. |
Valores admitidos de tamaño de página predeterminado
| Value | Result |
|---|---|
integer |
Cualquier entero positivo menor que el max-page-sizeactual. |
0 |
No está soportado. |
-1 |
El valor predeterminado es el valor de max-page-size actual. |
< -1 |
No está soportado. |
Comportamiento relativo al vínculo siguiente
Cuando next-link-relative es true, los valores de paginación nextLink usan direcciones URL relativas en lugar de direcciones URL absolutas.
| Value | Example |
|---|---|
false (valor predeterminado) |
"nextLink": "https://localhost:5001/api/users?$after=..." |
true |
"nextLink": "/api/users?$after=..." |
Format
{
"runtime": {
"pagination": {
"max-page-size": <integer; default: 100000>,
"default-page-size": <integer; default: 100>,
"next-link-relative": <boolean; default: false>
}
}
}
Note
Cuando el valor es mayor que max-page-size, los resultados se limitan a max-page-size.
Ejemplo: Paginación en REST
Request
GET https://localhost:5001/api/users
Carga de respuesta
{
"value": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"nextLink": "https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
Página Siguiente de solicitud
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Ejemplo: Paginación en GraphQL
Carga de solicitud (consulta)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Carga de respuesta
{
"data": {
"users": {
"items": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"hasNextPage": true,
"endCursor": "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
}
}
Página Siguiente de solicitud
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Ejemplo: Acceso max-page-size en solicitudes
Use el max-page-size valor estableciendo $limit (REST) o first (GraphQL) en -1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Caché (tiempo de ejecución)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
cache |
object | ❌ No | - |
Configuración de caché global.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ No | False |
runtime.cache |
ttl-seconds |
integer | ❌ No | 5 |
Tip
La propiedad de nivel cache.ttl-seconds de entidad tiene como valor predeterminado este valor global.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>
}
}
}
Important
Si global enabled es false, el nivel enabled de entidad individual no importa.
Telemetría (tiempo de ejecución)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
object | ❌ No | - |
Configuración de telemetría global.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ No | None |
runtime.telemetry |
application-insights |
object | ❌ No | - |
runtime.telemetry |
open-telemetry |
object | ❌ No | - |
Configura el nivel de detalle del registro por espacio de nombres. Esto sigue las convenciones de registro de .NET estándar y permite un control pormenorizado, aunque supone cierta familiaridad con los internos del Generador de API de datos. Data API Builder es de código abierto: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level se puede volver a cargar en caliente tanto en desarrollo como en producción. Actualmente es la única propiedad que admite la recarga activa en producción.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (telemetría)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
object | ❌ No | - |
Configura el registro en Application Insights.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ No | False |
runtime.telemetry.application-insights |
connection-string |
string | ✔️ Sí | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (telemetría)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
object | ❌ No | - |
Configura el registro en Abrir telemetría.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ No | true |
runtime.telemetry.open-telemetry |
endpoint |
string | ✔️ Sí | None |
runtime.telemetry.open-telemetry |
headers |
string | ❌ No | None |
runtime.telemetry.open-telemetry |
service-name |
string | ❌ No | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
enumeración (grpc | httpprotobuf) |
❌ No | grpc |
Hay varios encabezados separados (comas , ).
Format
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": <true> (default) | <false>,
"endpoint": <string>,
"headers": <string>,
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc" (default) | "httpprotobuf">
}
}
}
}
Example
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
// a gRPC endpoint example
"endpoint": "http://localhost:4317",
// an HTTP/protobuf endpoint example
"endpoint": "http://localhost:4318/v1/metrics",
"headers": "api-key=key,other-config-value=value",
"service-name": "dab",
}
}
}
}
Obtenga más información sobre OTEL_EXPORTER_OTLP_HEADERS.
Note
gRPC (4317) es más rápido y admite el streaming, pero requiere más pasos de configuración. HTTP/protobuf (4318) es más sencillo y fácil de depurar, pero menos eficaz.
Estado (tiempo de ejecución)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
health |
object | ❌ No | - |
Configuración del punto de conexión de comprobación de estado global ()./health
Propiedades anidadas
| Parent | Property | Type | Required | Default | Rango/Notas |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ No | true |
|
runtime.health |
roles |
matriz de cadena | ✔️ Sí* | null |
*Obligatorio en modo de producción |
runtime.health |
cache-ttl-seconds |
integer | ❌ No | 5 |
Min: 0 |
runtime.health |
max-query-parallelism |
integer | ❌ No | 4 |
Min: 1, Max: 8 (abrazado) |
Comportamiento en desarrollo frente a producción
| Condition | Comportamiento de desarrollo | Comportamiento de producción |
|---|---|---|
health.enabled = falso |
403 estado |
403 estado |
health.enabled = verdadero |
Depende del rol | Depende del rol |
roles omitido o null |
Estado mostrado |
403 estado |
rol actual no en roles |
403 estado |
403 estado |
rol actual en roles |
Estado mostrado | Estado mostrado |
roles Incluye anonymous |
Estado mostrado | Estado mostrado |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Si global enabled es false, el nivel enabled de entidad individual no importa.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}