Sdílet prostřednictvím


Runtime

Nastavení konfigurace, která určují chování modulu runtime.

Nastavení stránkování

Property Default Description
velikost stránky runtime.pagination.max Definuje maximální počet záznamů na stránku.
runtime.pagination.default-page-size Nastaví výchozí záznamy na odpověď.

Nastavení REST

Property Default Description
runtime.rest.path "/api" Základní cesta pro koncové body REST
runtime.rest.enabled true Povolení nebo zakázání požadavků REST pro všechny entity
runtime.rest.request-body-strict true Zakáže nadbytečná pole v textu požadavku, pokud je true.

Nastavení GraphQL

Property Default Description
runtime.graphql.allow-introspection true Umožňuje dotazování základního schématu GraphQL.
runtime.graphql.path "/graphql" Základní cesta pro koncový bod GraphQL
runtime.graphql.enabled true Povolí nebo zakáže požadavky GraphQL pro všechny entity.
runtime.graphql.depth-limit null Maximální povolená hloubka dotazu GraphQL
runtime.graphql.multiple-muts.create.enabled false Umožňuje vícenásobné vytváření mutací pro všechny entity.

Nastavení hostitele

Property Default Description
runtime.host.max-response-size-mb 158 Maximální velikost (MB) odpovědi databáze povolená v jednom výsledku
runtime.host.mode "production" Spuštěný režim; "production" nebo "development"

Nastavení CORS

Property Default Description
runtime.host.cors.origins [] Povolené zdroje CORS
runtime.host.cors.allow-credentials false Nastaví hodnotu pro hlavičku Access-Control-Allow-Credentials.

Nastavení ověřování

Property Default Description
runtime.host.authentication.provider null Zprostředkovatel ověřování
runtime.host.authentication.jwt.audience null Cílová skupina JWT
runtime.host.authentication.jwt.issuer null Vystavitel JWT

Nastavení mezipaměti

Property Default Description
runtime.cache.enabled false Umožňuje globální ukládání odpovědí do mezipaměti.
runtime.cache.ttl-seconds 5 Doba života (sekundy) pro globální mezipaměť

Nastavení telemetrie

Property Default Description
runtime.telemetry.application-insights.connection-string null Připojovací řetězec Application Insights
runtime.telemetry.application-insights.enabled false Povolí nebo zakáže telemetrii Application Insights.
runtime.telemetry.open-telemetry.endpoint null Adresa URL kolektoru OpenTelemetry
runtime.telemetry.open-telemetry.headers {} Hlavičky exportu OpenTelemetry
runtime.telemetry.open-telemetry.service-name "dab" Název služby OpenTelemetry
runtime.telemetry.open-telemetry.export-protocol "grpc" Protokol OpenTelemetry ("grpc" nebo "httpprotobuf")
runtime.telemetry.open-telemetry.enabled true Povolí nebo zakáže OpenTelemetry.
runtime.telemetry.log-level.namespace null Přepsání na úrovni protokolu specifické pro obor názvů
runtime.health.enabled true Povolí nebo zakáže koncový bod kontroly stavu globálně.
runtime.health.roles null Povolené role pro komplexní koncový bod stavu
runtime.health.cache-ttl-seconds 5 Doba života (sekundy) pro položku mezipaměti sestavy kontroly stavu
runtime.health.max-dotazování-paralelismus 4 Maximální počet souběžných dotazů na kontrolu stavu (rozsah: 1–8)

Přehled formátu

{
  "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`)
  }
}

Režim (modul runtime hostitele)

Parent Property Typ Required Default
runtime host enum (production | development) ❌ Ne production

Chování vývoje

  • Povoleno Nitro (dříve Banana Cake Pop) pro testování GraphQL
  • Povolené uživatelské rozhraní Swagger pro testování REST
  • Povolené anonymní kontroly stavu
  • Zvýšená úroveň podrobností protokolování (ladění)

Format

{
  "runtime": {
    "host": {
      "mode": "production" (default) | "development"
    }
  }
}

Maximální velikost odpovědi (modul runtime hostitele)

Parent Property Typ Required Default
runtime.host max-response-size-mb integer ❌ Ne 158

Nastaví maximální velikost (v megabajtech) pro libovolný daný výsledek. Vzhledem k tomu, že velké odpovědi můžou systém zatížit, max-response-size-mb zakládá celkovou velikost (liší se od počtu řádků), aby se zabránilo přetížení, což je zejména u velkých sloupců, jako je text nebo JSON.

Value Result
nenastaveno Použít výchozí
null Použít výchozí
integer Jakékoli kladné 32bitové celé číslo
<= 0 Není podporováno

Format

{
  "runtime": {
    "host": {
      "max-response-size-mb": <integer; default: 158>
    }
  }
}

GraphQL (modul runtime)

Parent Property Typ Required Default
runtime graphql objekt ❌ Ne -

Globální konfigurace GraphQL

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.graphql enabled boolean ❌ Ne None
runtime.graphql path řetězec ❌ Ne "/graphql"
runtime.graphql depth-limit integer ❌ Ne Žádné (neomezené)
runtime.graphql allow-introspection boolean ❌ Ne True
runtime.graphql multiple-mutations.create.enabled boolean ❌ Ne False

Poznámky k vlastnostem

  • Pro vlastnost nejsou povoleny path dílčí cesty.
  • Slouží depth-limit k omezení vnořených dotazů.
  • Nastavte allow-introspection na false skrytí schématu GraphQL.
  • Slouží multiple-mutations k vložení více entit do jedné mutaci.

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>
        }
    }
  }
}

Příklad: více mutací

Configuration

{
  "runtime": {
    "graphql": {
      "multiple-mutations": {
        "create": {
          "enabled": true
        }
      }
    }
  },
  "entities": {
    "User": {
      "source": "dbo.Users",
      "permissions": [
        {
          "role": "anonymous",
          "actions": ["create"] // entity permissions are required
        }
      ]
    }
  }
}

GraphQL mutací

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 (modul runtime)

Parent Property Typ Required Default
runtime rest objekt ❌ Ne -

Globální konfigurace REST.

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.rest enabled boolean ❌ Ne None
runtime.rest path řetězec ❌ Ne "/api"
runtime.rest request-body-strict boolean ❌ Ne True

Poznámky k vlastnostem

  • Pokud je enabledglobální false hodnota , na jednotlivých úrovních enabled entit nezáleží.
  • Vlastnost path nepodporuje hodnoty dílčích cest, jako je /api/data.
  • request-body-strict byla zavedena, aby se zjednodušily objekty POCO .NET.
request-body-strict Behavior
true Nadbytečná pole v textu požadavku způsobují BadRequest výjimku.
false Další pole v textu požadavku se ignorují.

Format

{
  "runtime": {
    "rest": {
      "enabled": <true> (default) | <false>,
      "path": <string> (default: /api),
      "request-body-strict": <true> (default) | <false>
    }
  }
}

Příklad: request-body-strict

  • Sloupce s default() hodnotou jsou ignorovány pouze v INSERT případech, kdy je nulljejich hodnota v datové části . V důsledku toho INSERT operace do default() sloupců, pokud request-body-strict je true, nemohou vést k explicitním null hodnotám. K dosažení tohoto chování UPDATE se vyžaduje operace.
  • Sloupce s default() hodnotou datové části se neignorují UPDATE bez ohledu na hodnotu datové části.
  • Počítané sloupce se vždy ignorují.
  • Automaticky generované sloupce jsou vždy ignorovány.

Ukázková tabulka

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
);

Obsah žádosti

{
  "Id": 999,
  "Name": "Alice",
  "Age": null,
  "IsAdmin": null,
  "IsMinor": false,
  "ExtraField": "ignored"
}

Vložit chování při 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.

Odpověďové zatížení

{
  "Id": 1,          // Auto-generated by the database
  "Name": "Alice",
  "Age": 18,        // Default applied
  "IsAdmin": false, // Default applied
  "IsMinor": true   // Computed
}

Aktualizovat chování při request-body-strict = false

UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.

Odpověďové zatížení

{
  "Id": 1,
  "Name": "Alice Updated",
  "Age": null,
  "IsAdmin": false,
  "IsMinor": false // Recomputed by the database (false when age is `null`)
}

CORS (modul runtime hostitele)

Parent Property Typ Required Default
runtime.host cors objekt ❌ Ne -

Globální konfigurace CORS

Tip

CORS je zkratka pro sdílení prostředků mezi zdroji. Je to funkce zabezpečení prohlížeče, která určuje, jestli webové stránky můžou provádět požadavky na jinou doménu, než která je obsluhovala.

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.host.cors allow-credentials boolean ❌ Ne False
runtime.host.cors origins Řetězcové pole ❌ Ne None

Note

Vlastnost allow-credentials nastaví hlavičku Access-Control-Allow-Credentials CORS.

Format

{
  "runtime": {
    "host": {
      "cors": {
        "allow-credentials": <true> (default) | <false>,
        "origins": ["<array-of-strings>"]
      }
    }
  }
}

Note

Zástupný znak * je platný jako hodnota pro origins.

Zprostředkovatel (modul runtime hostitele ověřování)

Parent Property Typ Required Default
runtime.host.authentication provider enum (AppServiceSimulator | | EntraId | Custom) ❌ Ne None

Vybere metodu ověřování. Každý zprostředkovatel ověřuje identitu odlišně. Podrobné nastavení najdete v níže uvedených návodech.

Souhrn zprostředkovatele

Provider Případ použití Zdroj identity Praktičtí průvodci
(vynecháno) Anonymní přístup None
AppService Aplikace hostované v Azure (EasyAuth) X-MS-CLIENT-PRINCIPAL Záhlaví Konfigurace ověřování ve službě App Service
EntraID Microsoft Entra ID (Azure AD) Nosný token JWT Konfigurace ověřování Entra ID
Custom Zprostředkovatele identity třetích stran (Okta, Auth0) Nosný token JWT Konfigurace vlastního ověřování JWT
Simulator Pouze místní testování Simulovaný Konfigurace ověřování simulátoru

Note

EntraId Zprostředkovatel byl dříve pojmenován AzureAd. Starý název stále funguje kvůli kompatibilitě.

Pouze anonymní (bez zprostředkovatele)

Když oddíl authentication vynecháte, DAB funguje v anonymním režimu. Všechny požadavky mají přiřazenou systémovou Anonymous roli.

{
  "host": {
    // authentication section omitted
  }
}

AppService

Důvěřuje hlavičkám identit vloženým službou Azure App Service EasyAuth.

{
  "host": {
    "authentication": {
      "provider": "AppService"
    }
  }
}

EntraID

Ověřuje tokeny JWT vydané id Microsoft Entra.

{
  "host": {
    "authentication": {
      "provider": "EntraId",
      "jwt": {
        "audience": "<application-id>",
        "issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
      }
    }
  }
}

Custom

Ověřuje tokeny JWT od zprostředkovatelů identity třetích stran.

{
  "host": {
    "authentication": {
      "provider": "Custom",
      "jwt": {
        "audience": "<api-audience>",
        "issuer": "https://<your-idp-domain>/"
      }
    }
  }
}

Simulátor

Simuluje ověřování pro místní vývoj a testování.

{
  "host": {
    "authentication": {
      "provider": "Simulator"
    }
  }
}

Important

Poskytovatel Simulator funguje pouze v případech, kdy runtime.host.mode je development. DaB se nepodaří spustit, pokud je simulátor nakonfigurovaný v produkčním režimu.

Výběr role

Pro všechny zprostředkovatele kromě simulátoru hlavička X-MS-API-ROLE vybere, kterou roli se má použít z deklarací identity ověřeného uživatele. Pokud tento parametr vynecháte, požadavek použije systémovou Authenticated roli. Podrobnosti o vyhodnocení rolí najdete v tématu Autorizace a role.

JWT (modul runtime hostitele ověřování)

Parent Property Typ Required Default
runtime.host.authentication jwt objekt ❌ Ne -

Globální konfigurace webového tokenu JSON (JWT).

Diagram podpory webových tokenů JSON v Tvůrci rozhraní Data API

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.host.authentication.jwt audience řetězec ❌ Ne None
runtime.host.authentication.jwt issuer řetězec ❌ Ne None

Format

{
  "runtime": {
    "host": {
      "authentication": {
        "jwt": {
          "audience": "<client-id>",
          "issuer": "<issuer-url>"
        }
      }
    }
  }
}

Stránkování (modul runtime)

Parent Property Typ Required Default
runtime pagination objekt ❌ Ne -

Globální limity stránkování pro koncové body REST a GraphQL

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.pagination max-page-size int ❌ Ne 100,000
runtime.pagination default-page-size int ❌ Ne 100
runtime.pagination next-link-relative boolean ❌ Ne false

Maximální podporovaná velikost stránky

Value Result
integer Podporuje se jakékoli kladné 32bitové celé číslo.
0 Není podporováno.
-1 Výchozí hodnota je maximální podporovaná hodnota.
< -1 Není podporováno.

Podporované hodnoty výchozí velikosti stránky

Value Result
integer Jakékoli kladné celé číslo menší než aktuální max-page-size.
0 Není podporováno.
-1 Výchozí hodnota je aktuální nastavení max-page-size.
< -1 Není podporováno.

Pokud next-link-relative je tomu tak true, hodnoty stránkování nextLink používají relativní adresy URL místo absolutních adres URL.

Value Example
false (výchozí) "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

Pokud je hodnota větší než max-page-size, výsledky jsou omezeny na max-page-sizehodnotu .

Příklad: Stránkování v REST

Request

GET https://localhost:5001/api/users

Odpověďové zatížení

{
  "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=="
}

Další stránka žádosti

GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==

Příklad: Stránkování v GraphQL

Datová část požadavku (dotaz)

query {
  users {
    items {
      Id
      Name
      Age
      IsAdmin
      IsMinor
    }
    hasNextPage
    endCursor
  }
}

Odpověďové zatížení

{
  "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=="
    }
  }
}

Další stránka žádosti

query {
  users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
    items {
      Id
      Name
      Age
      IsAdmin
      IsMinor
    }
    hasNextPage
    endCursor
  }
}

Příklad: Přístup k žádostem max-page-size

max-page-size Použijte hodnotu nastavením $limit (REST) nebo first (GraphQL) na -1.

REST

GET https://localhost:5001/api/users?$limit=-1

GraphQL

query {
  users(first: -1) {
    items {
      ...
    }
  }
}

Mezipaměť (modul runtime)

Parent Property Typ Required Default
runtime cache objekt ❌ Ne -

Konfigurace globální mezipaměti.

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.cache enabled boolean ❌ Ne False
runtime.cache ttl-seconds integer ❌ Ne 5

Tip

Vlastnost na úrovni cache.ttl-seconds entity se ve výchozím nastavení nastaví na tuto globální hodnotu.

Format

{
  "runtime": {
    "cache":  {
      "enabled": <boolean>,
      "ttl-seconds": <integer>
    }
  }
}

Important

Pokud je enabledglobální false hodnota , na jednotlivých úrovních enabled entit nezáleží.

Telemetrie (modul runtime)

Parent Property Typ Required Default
runtime telemetry objekt ❌ Ne -

Globální konfigurace telemetrie

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.telemetry log-level dictionary ❌ Ne None
runtime.telemetry application-insights objekt ❌ Ne -
runtime.telemetry open-telemetry objekt ❌ Ne -

Konfiguruje úroveň podrobností protokolování pro každý obor názvů. To se řídí standardními konvencemi protokolování .NET a umožňuje podrobné řízení, i když předpokládá určitou znalost interních prvků Tvůrce rozhraní Data API. Tvůrce rozhraní Data API je open source: https://aka.ms/dab

Format

{
  "runtime": {
    "telemetry": {
      "log-level": {
        "namespace": "log-level",
        "namespace": "log-level"
      }
    }
  }
}

Tip

log-level lze znovu načíst za provozu ve vývoji i v produkčním prostředí. V současné době je to jediná vlastnost, která podporuje opětovné načítání za provozu v produkčním prostředí.

Example

{
  "runtime": {
    "telemetry": {
      "log-level": {
        "Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
        "Azure.DataApiBuilder.Core": "information",
        "default": "warning"
      }
    }
  }
}

Application Insights (telemetrie)

Parent Property Typ Required Default
runtime.telemetry application-insights objekt ❌ Ne -

Konfiguruje protokolování do Application Insights.

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.telemetry.application-insights enabled boolean ❌ Ne False
runtime.telemetry.application-insights connection-string řetězec ✔️ Ano None

Format

{
  "runtime": {
    "telemetry": {
      "application-insights": {
        "enabled": <true; default: true> | <false>
        "connection-string": <string>
      }
    }
  }
}

OpenTelemetry (telemetrie)

Parent Property Typ Required Default
runtime.telemetry open-telemetry objekt ❌ Ne -

Konfiguruje protokolování pro otevření telemetrie.

Vnořené vlastnosti

Parent Property Typ Required Default
runtime.telemetry.open-telemetry enabled boolean ❌ Ne true
runtime.telemetry.open-telemetry endpoint řetězec ✔️ Ano None
runtime.telemetry.open-telemetry headers řetězec ❌ Ne None
runtime.telemetry.open-telemetry service-name řetězec ❌ Ne "dab"
runtime.telemetry.open-telemetry exporter-protocol enum (grpc | httpprotobuf) ❌ Ne grpc

Více záhlaví jsou , oddělená čárkami.

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",
      }
    }
  }
}

Přečtěte si další informace o OTEL_EXPORTER_OTLP_HEADERS.

Note

GRPC (4317) je rychlejší a podporuje streamování, ale vyžaduje více kroků nastavení. HTTP/protobuf (4318) je jednodušší a jednodušší ladit, ale méně efektivní.

Stav (modul runtime)

Parent Property Typ Required Default
runtime health objekt ❌ Ne -

Konfigurace koncového bodu globální kontroly stavu (/health).

Vnořené vlastnosti

Parent Property Typ Required Default Rozsah/poznámky
runtime.health enabled boolean ❌ Ne true
runtime.health roles Řetězcové pole ✔️ Ano* null *Požadováno v produkčním režimu
runtime.health cache-ttl-seconds integer ❌ Ne 5 Min: 0
runtime.health max-query-parallelism integer ❌ Ne 4 Min: 1, Max: 8 (upínací)

Chování při vývoji vs. produkčního prostředí

Condition Chování při vývoji Chování v produkčním prostředí
health.enabled = nepravda 403 stav 403 stav
health.enabled = pravda Závisí na roli. Závisí na roli.
roles vynecháno nebo null Zobrazený stav 403 stav
aktuální role není v roles 403 stav 403 stav
aktuální role v roles Zobrazený stav Zobrazený stav
roles zahrnuje anonymous Zobrazený stav Zobrazený stav

Format

{
  "health": {
    "enabled": <true> (default) | <false>,
    "roles": [ <string> ], // required in production
    "cache-ttl-seconds": <integer; default: 5>,
    "max-query-parallelism": <integer; default: 4>
  }
}

Note

Pokud je enabledglobální false hodnota , na jednotlivých úrovních enabled entit nezáleží.

Example

{
  "health": {
    "enabled": true,
    "roles": ["admin", "support"],
    "cache-ttl-seconds": 10,
    "max-query-parallelism": 6
  }
}