Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Paramètres de configuration qui déterminent le comportement d’exécution.
Paramètres de pagination
| Property | Default | Description |
|---|---|---|
| runtime.pagination.max-page-size | Définit le nombre maximal d’enregistrements par page | |
| runtime.pagination.default-page-size | Définit les enregistrements par défaut par réponse |
Paramètres REST
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
Chemin d’accès de base pour les points de terminaison REST |
| runtime.rest.enabled | true |
Autorise l’activation ou la désactivation des requêtes REST pour toutes les entités |
| runtime.rest.request-body-strict | true |
Interdit les champs superflus dans le corps de la demande quand la valeur est true |
Paramètres GraphQL
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Permet l’interrogation du schéma GraphQL sous-jacent |
| runtime.graphql.path | "/graphql" |
Chemin d’accès de base pour le point de terminaison GraphQL |
| runtime.graphql.enabled | true |
Autorise l’activation ou la désactivation des requêtes GraphQL pour toutes les entités |
| runtime.graphql.depth-limit | null |
Profondeur maximale autorisée d’une requête GraphQL |
| runtime.graphql.multiple-mutations.create.enabled | false |
Permet de créer plusieurs mutations pour toutes les entités |
Paramètres de l’hôte
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Taille maximale (Mo) de la réponse de base de données autorisée dans un résultat unique |
| runtime.host.mode | "production" |
Mode en cours d’exécution ; "production" ou "development" |
Paramètres CORS
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Origines CORS autorisées |
| runtime.host.cors.allow-credentials | false |
Définit la valeur de l’en-tête Access-Control-Allow-Credentials |
Paramètres d’authentification
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | null |
Fournisseur d’authentification |
| runtime.host.authentication.jwt.audience | null |
Audience JWT |
| runtime.host.authentication.jwt.issuer | null |
Émetteur JWT |
Paramètres du cache
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Active la mise en cache des réponses globalement |
| runtime.cache.ttl-seconds | 5 |
Durée de vie (secondes) du cache global |
Paramètres de télémétrie
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Chaîne de connexion Application Insights |
| runtime.telemetry.application-insights.enabled | false |
Active ou désactive la télémétrie Application Insights |
| runtime.telemetry.open-telemetry.endpoint | null |
URL du collecteur OpenTelemetry |
| runtime.telemetry.open-telemetry.headers | {} |
En-têtes d’exportation OpenTelemetry |
| runtime.telemetry.open-telemetry.service-name | "dab" |
Nom du service OpenTelemetry |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
Protocole OpenTelemetry (« grpc » ou « httpprotobuf ») |
| runtime.telemetry.open-telemetry.enabled | true |
Active ou désactive OpenTelemetry |
| runtime.telemetry.log-level.namespace | null |
Remplacement au niveau du journal spécifique à l’espace de noms |
| runtime.health.enabled | true |
Active ou désactive le point de terminaison de contrôle d’intégrité globalement |
| runtime.health.roles | null |
Rôles autorisés pour le point de terminaison d’intégrité complet |
| runtime.health.cache-ttl-seconds | 5 |
Durée de vie (secondes) de l’entrée du cache du rapport de contrôle d’intégrité |
| runtime.health.max-query-parallelism | 4 |
Nombre maximal de requêtes de contrôle d’intégrité simultanées (plage : 1 à 8) |
Vue d’ensemble du format
{
"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`)
}
}
Mode (runtime d’hôte)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
host |
enum (production | development) |
❌ Non | production |
Comportement de développement
- Enabled Nitro (anciennement Banana Cake Pop) pour les tests GraphQL
- Activation de l’interface utilisateur Swagger pour les tests REST
- Vérifications d’intégrité anonymes activées
- Augmentation du détail de journalisation (débogage)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Taille de réponse maximale (runtime de l’hôte)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
integer | ❌ Non | 158 |
Définit la taille maximale (en mégaoctets) pour un résultat donné. Comme les réponses volumineuses peuvent forcer le système, max-response-size-mb limite la taille totale (différente du nombre de lignes) pour empêcher la surcharge, ce qui est particulièrement avec de grandes colonnes telles que du texte ou JSON.
| Value | Result |
|---|---|
| non défini | Utiliser la valeur par défaut |
null |
Utiliser la valeur par défaut |
integer |
Entier 32 bits positif |
<= 0 |
Non prise en charge |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
object | ❌ Non | - |
Configuration globale de GraphQL.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Non | None |
runtime.graphql |
path |
string | ❌ Non | "/graphql" |
runtime.graphql |
depth-limit |
integer | ❌ Non | Aucun (illimité) |
runtime.graphql |
allow-introspection |
boolean | ❌ Non | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Non | False |
Notes de propriété
- Les sous-chemins ne sont pas autorisés pour la
pathpropriété. - Permet
depth-limitde limiter les requêtes imbriquées. - Définissez cette option
allow-introspectionpourfalsemasquer le schéma GraphQL. - Permet
multiple-mutationsd’insérer plusieurs entités dans une seule mutation.
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>
}
}
}
}
Exemple : mutations multiples
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
Mutation 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 (temps d'exécution)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
rest |
object | ❌ Non | - |
Configuration REST globale.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Non | None |
runtime.rest |
path |
string | ❌ Non | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Non | True |
Notes de propriété
- Si global
enabledestfalse, le niveauenabledd’entité individuel n’a pas d’importance. - La
pathpropriété ne prend pas en charge les valeurs de sous-chemin comme/api/data. -
request-body-stricta été introduit pour simplifier les objets .NET POCO.
request-body-strict |
Behavior |
|---|---|
true |
Des champs supplémentaires dans le corps de la requête provoquent une BadRequest exception. |
false |
Les champs supplémentaires dans le corps de la demande sont ignorés. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Exemple : request-body-strict
- Les colonnes avec une
default()valeur sont ignorées uniquementINSERTlorsque leur valeur dans la charge utile estnull. Par conséquent,INSERTles opérations endefault()colonnes, quand c’estrequest-body-strictle castrue, ne peuvent pas entraîner de valeurs explicitesnull. Pour accomplir ce comportement, uneUPDATEopération est requise. - Les colonnes avec un
default()ne sont pas ignorées pendantUPDATEquelle que soit la valeur de la charge utile. - Les colonnes calculées sont toujours ignorées.
- Les colonnes générées automatiquement sont toujours ignorées.
Exemple de table
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
);
Charge utile de la demande
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Comportement d’insertion lorsque 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.
Charge utile de la réponse
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Mettre à jour le comportement quand request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Charge utile de la réponse
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (runtime d’hôte)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
object | ❌ Non | - |
Configuration CORS globale.
Tip
CORS signifie « Partage de ressources cross-origin ». Il s’agit d’une fonctionnalité de sécurité du navigateur qui contrôle si les pages web peuvent effectuer des requêtes à un domaine différent de celui qui les a servis.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Non | False |
runtime.host.cors |
origins |
tableau de chaînes | ❌ Non | None |
Note
La allow-credentials propriété définit l’en-tête Access-Control-Allow-Credentials CORS.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> (default) | <false>,
"origins": ["<array-of-strings>"]
}
}
}
}
Note
Le caractère générique * est valide comme valeur pour origins.
Fournisseur (runtime d’hôte d’authentification)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
enum (AppServiceSimulator | | EntraId | Custom) |
❌ Non | None |
Sélectionne la méthode d’authentification. Chaque fournisseur valide l’identité différemment. Pour une configuration pas à pas, consultez les guides pratiques liés ci-dessous.
Résumé du fournisseur
| Provider | Cas d’utilisation | Source d’identité | Guide pratique |
|---|---|---|---|
| (omis) | Accès anonyme uniquement | None | — |
AppService |
Applications hébergées par Azure (EasyAuth) | En-tête X-MS-CLIENT-PRINCIPAL |
Configurer l’authentification App Service |
EntraID |
Microsoft Entra ID (Azure AD) | Jeton du porteur JWT | Configurer l’authentification Entra ID |
Custom |
Fournisseurs d’identité tiers (Okta, Auth0) | Jeton du porteur JWT | Configurer l’authentification JWT personnalisée |
Simulator |
Tests locaux uniquement | Simulé | Configurer l’authentification du simulateur |
Note
Le EntraId fournisseur a été précédemment nommé AzureAd. L’ancien nom fonctionne toujours pour la compatibilité.
Anonyme uniquement (aucun fournisseur)
Lorsque la authentication section est omise, DAB fonctionne en mode anonyme uniquement. Toutes les requêtes sont affectées au Anonymous rôle système.
{
"host": {
// authentication section omitted
}
}
AppService
Approuve les en-têtes d’identité injectés par Azure App Service EasyAuth.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Valide les jetons JWT émis par l’ID Microsoft Entra.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Coutume
Valide les jetons JWT des fournisseurs d’identité tiers.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Simulateur
Simule l’authentification pour le développement et les tests locaux.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
Le Simulator fournisseur fonctionne uniquement lorsque runtime.host.mode c’est development. DAB ne parvient pas à démarrer si Le simulateur est configuré en mode de production.
Sélection de rôle
Pour tous les fournisseurs, à l’exception du simulateur, l’en-tête X-MS-API-ROLE sélectionne le rôle à utiliser à partir des revendications de l’utilisateur authentifié. Si elle est omise, la requête utilise le Authenticated rôle système. Pour plus d’informations sur l’évaluation des rôles, consultez Autorisation et rôles.
JWT (runtime d’hôte d’authentification)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
object | ❌ Non | - |
Configuration JWT (Global JSON Web Token).
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
string | ❌ Non | None |
runtime.host.authentication.jwt |
issuer |
string | ❌ Non | None |
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Pagination (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
object | ❌ Non | - |
Limites de pagination globales pour les points de terminaison REST et GraphQL.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Non | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Non | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Non | false |
Valeurs prises en charge par la taille maximale de page
| Value | Result |
|---|---|
integer |
Tout entier 32 bits positif est pris en charge. |
0 |
Non pris en charge. |
-1 |
Correspond par défaut à la valeur maximale prise en charge. |
< -1 |
Non pris en charge. |
Valeurs prises en charge par défaut de la taille de page
| Value | Result |
|---|---|
integer |
Entier positif inférieur à l'max-page-sizeactuel . |
0 |
Non pris en charge. |
-1 |
La valeur par défaut est le paramètre de max-page-size actuel. |
< -1 |
Non pris en charge. |
Comportement relatif au lien suivant
Quand next-link-relative c’est truele cas, les valeurs de pagination nextLink utilisent des URL relatives au lieu d’URL absolues.
| Value | Example |
|---|---|
false (valeur par défaut) |
"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
Lorsque la valeur est supérieure max-page-sizeà , les résultats sont limités à max-page-size.
Exemple : Pagination dans REST
Request
GET https://localhost:5001/api/users
Charge utile de la réponse
{
"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=="
}
Page Suivante de la demande
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Exemple : Pagination dans GraphQL
Charge utile de la requête (requête)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Charge utile de la réponse
{
"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=="
}
}
}
Page Suivante de la demande
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Exemple : accès max-page-size aux demandes
Utilisez la max-page-size valeur en définissant $limit (REST) ou first (GraphQL) sur -1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Cache (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
cache |
object | ❌ Non | - |
Configuration globale du cache.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Non | False |
runtime.cache |
ttl-seconds |
integer | ❌ Non | 5 |
Tip
La propriété au niveau cache.ttl-seconds de l’entité est définie par défaut sur cette valeur globale.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>
}
}
}
Important
Si global enabled est false, le niveau enabled d’entité individuel n’a pas d’importance.
Télémétrie (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
object | ❌ Non | - |
Configuration globale de la télémétrie.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Non | None |
runtime.telemetry |
application-insights |
object | ❌ Non | - |
runtime.telemetry |
open-telemetry |
object | ❌ Non | - |
Configure la journalisation détaillée par espace de noms. Cela suit les conventions de journalisation .NET standard et permet un contrôle granulaire, bien qu’il suppose une certaine familiarité avec les internes du générateur d’API de données. Le générateur d’API de données est open source : https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level peut être rechargé à chaud dans le développement et la production. Il s’agit actuellement de la seule propriété qui prend en charge le rechargement à chaud en production.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (télémétrie)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
object | ❌ Non | - |
Configure la journalisation dans Application Insights.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Non | False |
runtime.telemetry.application-insights |
connection-string |
string | ✔️ Oui | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (télémétrie)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
object | ❌ Non | - |
Configure la journalisation sur Open Telemetry.
Propriétés imbriquées
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Non | true |
runtime.telemetry.open-telemetry |
endpoint |
string | ✔️ Oui | None |
runtime.telemetry.open-telemetry |
headers |
string | ❌ Non | None |
runtime.telemetry.open-telemetry |
service-name |
string | ❌ Non | « dab » |
runtime.telemetry.open-telemetry |
exporter-protocol |
enum (grpc | httpprotobuf) |
❌ Non | grpc |
Plusieurs en-têtes sont , séparés par des virgules.
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",
}
}
}
}
En savoir plus sur OTEL_EXPORTER_OTLP_HEADERS.
Note
gRPC (4317) est plus rapide et prend en charge la diffusion en continu, mais nécessite davantage d’étapes de configuration. HTTP/protobuf (4318) est plus simple et plus facile à déboguer, mais moins efficace.
Intégrité (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
health |
object | ❌ Non | - |
Configuration du point de terminaison de contrôle d’intégrité global (/health).
Propriétés imbriquées
| Parent | Property | Type | Required | Default | Plage/notes |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Non | true |
|
runtime.health |
roles |
tableau de chaînes | ✔️ Oui* | null |
*Obligatoire en mode de production |
runtime.health |
cache-ttl-seconds |
integer | ❌ Non | 5 |
Min : 0 |
runtime.health |
max-query-parallelism |
integer | ❌ Non | 4 |
Min : 1, Max : 8 (limité) |
Comportement dans le développement et la production
| Condition | Comportement de développement | Comportement de production |
|---|---|---|
health.enabled = faux |
403 statut |
403 statut |
health.enabled = vrai |
Dépend du rôle | Dépend du rôle |
roles omis ou null |
Intégrité affichée |
403 statut |
rôle actuel non dans roles |
403 statut |
403 statut |
rôle actuel dans roles |
Intégrité affichée | Intégrité affichée |
roles Comprend anonymous |
Intégrité affichée | Intégrité affichée |
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 est false, le niveau enabled d’entité individuel n’a pas d’importance.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}