Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметры конфигурации, определяющие поведение среды выполнения.
Параметры разбиения на страницы
| Property | Default | Description |
|---|---|---|
| размер страницы runtime.pagination.max | Определяет максимальные записи на страницу | |
| runtime.pagination.default-page-size | Задает записи по умолчанию на ответ |
Параметры REST
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
Базовый путь для конечных точек REST |
| runtime.rest.enabled | true |
Разрешает включение или отключение запросов REST для всех сущностей |
| runtime.rest.request-body-strict | true |
Запрещает лишние поля в тексте запроса, если значение true |
Параметры GraphQL
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Позволяет запрашивать базовую схему GraphQL |
| runtime.graphql.path | "/graphql" |
Базовый путь для конечной точки GraphQL |
| runtime.graphql.enabled | true |
Разрешает включение или отключение запросов GraphQL для всех сущностей |
| runtime.graphql.depth-limit | null |
Максимальная допустимая глубина запроса GraphQL |
| runtime.graphql.multiple-mutations.create.enabled | false |
Позволяет создавать несколько мутаций для всех сущностей |
Параметры узла
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Максимальный размер ответа базы данных (МБ), разрешенный в одном результате |
| runtime.host.mode | "production" |
Режим выполнения; "production" или "development" |
Параметры CORS
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Разрешенные источники CORS |
| runtime.host.cors.allow-credentials | false |
Задает значение заголовка Access-Control-Allow-Credentials |
Параметры проверки подлинности
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | null |
Поставщик проверки подлинности |
| runtime.host.authentication.jwt.audience | null |
Аудитория JWT |
| runtime.host.authentication.jwt.issuer | null |
Издатель JWT |
Параметры кэша
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Обеспечивает глобальное кэширование ответов |
| runtime.cache.ttl-seconds | 5 |
Время жизни (в секундах) для глобального кэша |
Настройки телеметрии
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Строка подключения Application Insights |
| runtime.telemetry.application-insights.enabled | false |
Включает или отключает данные телеметрии Application Insights |
| runtime.telemetry.open-telemetry.endpoint | null |
URL-адрес сборщика OpenTelemetry |
| runtime.telemetry.open-telemetry.headers | {} |
Заголовки экспорта OpenTelemetry |
| runtime.telemetry.open-telemetry.service-name | "dab" |
Имя службы OpenTelemetry |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
Протокол OpenTelemetry ("grpc" или "httpprotobuf") |
| runtime.telemetry.open-telemetry.enabled | true |
Включает или отключает OpenTelemetry |
| пространство имен runtime.telemetry.log уровня.namespace | null |
Переопределение уровня журнала для конкретного пространства имен |
| runtime.health.enabled | true |
Включает или отключает конечную точку проверки работоспособности глобально |
| runtime.health.role | null |
Разрешенные роли для комплексной конечной точки работоспособности |
| runtime.health.cache-ttl-seconds | 5 |
Время жизни (секунды) для записи кэша отчетов проверки работоспособности |
| параллелизм runtime.health.max-query-parallelism | 4 |
Максимальное число одновременных запросов проверки работоспособности (диапазон: 1–8) |
Обзор формата
{
"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`)
}
}
Режим (среда выполнения узла)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
host |
перечисление (production | development) |
❌ Нет | production |
Поведение разработки
- Включено Nitro (ранее банановый торт pop) для тестирования GraphQL
- Включенный пользовательский интерфейс Swagger для тестирования REST
- Включена анонимная проверка работоспособности
- Повышенная детализация ведения журнала (отладка)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Максимальный размер ответа (среда выполнения узла)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
integer | ❌ Нет | 158 |
Задает максимальный размер (в мегабайтах) для любого заданного результата. Так как большие ответы могут напрягать систему, max-response-size-mb заголовок общего размера (отличается от количества строк), чтобы предотвратить перегрузку, которая особенно с большими столбцами, такими как текст или JSON.
| Value | Result |
|---|---|
| не задано | Использовать по умолчанию |
null |
Использовать по умолчанию |
integer |
Любое положительное 32-разрядное целое число |
<= 0 |
Не поддерживается |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
object | ❌ Нет | - |
Конфигурация Global GraphQL.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Нет | None |
runtime.graphql |
path |
string | ❌ Нет | "/graphql" |
runtime.graphql |
depth-limit |
integer | ❌ Нет | Нет (без ограничений) |
runtime.graphql |
allow-introspection |
boolean | ❌ Нет | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Нет | False |
Заметки о свойствах
- Подпаты не допускаются для
pathсвойства. - Используется
depth-limitдля ограничения вложенных запросов. - Установите для
allow-introspectionfalseскрытия схемы GraphQL. - Используется
multiple-mutationsдля вставки нескольких сущностей в одну мутацию.
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>
}
}
}
}
Пример: несколько мутаций
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
Мутация 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 (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
rest |
object | ❌ Нет | - |
Глобальная конфигурация REST.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Нет | None |
runtime.rest |
path |
string | ❌ Нет | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Нет | True |
Заметки о свойствах
- Если глобальный
enabledfalse, отдельный уровеньenabledсущности не имеет значения. - Свойство
pathне поддерживает такие значения подпаток, как/api/data. -
request-body-strictбыл представлен для упрощения объектов POCO .NET.
request-body-strict |
Behavior |
|---|---|
true |
Дополнительные поля в тексте BadRequest запроса вызывают исключение. |
false |
Дополнительные поля в тексте запроса игнорируются. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Пример: request-body-strict
- Столбцы со
default()значением игнорируются только вINSERTтом случае, если их значение в полезных данныхnullравно. В результатеINSERTоперации сdefault()столбцами, когдаrequest-body-strictони естьtrue, не могут привести к явнымnullзначениям. Для выполнения этого поведенияUPDATEтребуется операция. - Столбцы с ней
default()не игнорируются во времяUPDATEнезависимо от значения полезных данных. - Вычисляемые столбцы всегда игнорируются.
- Автоматически созданные столбцы всегда игнорируются.
Пример таблицы
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
);
Тело запроса
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Вставка поведения при 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.
Полезная нагрузка ответа
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Обновление поведения при request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Полезная нагрузка ответа
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (среда выполнения узла)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
object | ❌ Нет | - |
Глобальная конфигурация CORS.
Tip
CORS обозначает "Общий доступ к ресурсам между источниками". Это функция безопасности браузера, которая определяет, могут ли веб-страницы запрашивать домен, отличный от обслуживаемого.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Нет | False |
runtime.host.cors |
origins |
массив строк | ❌ Нет | None |
Note
Свойство allow-credentials задает Access-Control-Allow-Credentials заголовок CORS.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> (default) | <false>,
"origins": ["<array-of-strings>"]
}
}
}
}
Note
Подстановочный знак * действителен в качестве значения origins.
Поставщик (среда выполнения узла проверки подлинности)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
перечисление (AppService | EntraId | Custom | Simulator) |
❌ Нет | None |
Выбирает метод проверки подлинности. Каждый поставщик проверяет удостоверение по-разному. Пошаговые инструкции по настройке см. в руководстве, связанном ниже.
Сводка поставщика
| Provider | Сценарий использования | Источник удостоверений | Практическое руководство |
|---|---|---|---|
| (опущено) | Доступ только для анонимного доступа | None | — |
AppService |
Размещенные в Azure приложения (EasyAuth) | Заголовок X-MS-CLIENT-PRINCIPAL |
Настройка проверки подлинности службы приложений |
EntraID |
Идентификатор Microsoft Entra (Azure AD) | Токен носителя JWT | Настройка проверки подлинности идентификатора записи |
Custom |
Сторонние поставщики удостоверений (Okta, Auth0) | Токен носителя JWT | Настройка пользовательской проверки подлинности JWT |
Simulator |
Только локальное тестирование | Симулированный | Настройка проверки подлинности симулятора |
Note
Поставщик EntraId был ранее назван AzureAd. Старое имя по-прежнему работает для совместимости.
Только анонимный (без поставщика)
authentication Если раздел опущен, DAB работает в анонимном режиме. Все запросы назначаются системной Anonymous роли.
{
"host": {
// authentication section omitted
}
}
AppService
Доверяет заголовкам удостоверений, внедренным службой приложений Azure EasyAuth.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Проверяет токены JWT, выданные идентификатором Microsoft Entra.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Custom
Проверяет маркеры JWT от сторонних поставщиков удостоверений.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Симулятор
Имитирует проверку подлинности для локальной разработки и тестирования.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
Поставщик Simulator работает только в том developmentслучаеruntime.host.mode. DAB не запускается, если симулятор настроен в рабочем режиме.
Выбор роли
Для всех поставщиков, кроме симулятора, X-MS-API-ROLE заголовок выбирает роль, используемую из утверждений пользователя, прошедших проверку подлинности. Если опущено, запрос использует системную Authenticated роль. Дополнительные сведения об оценке ролей см. в разделе "Авторизация" и "Роли".
JWT (среда выполнения узла проверки подлинности)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
object | ❌ Нет | - |
Конфигурация глобального веб-маркера JSON (JWT).
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
string | ❌ Нет | None |
runtime.host.authentication.jwt |
issuer |
string | ❌ Нет | None |
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Разбиение на страницы (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
object | ❌ Нет | - |
Глобальные ограничения на страницы для конечных точек REST и GraphQL.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Нет | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Нет | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Нет | false |
Поддерживаемые значения максимального размера страницы
| Value | Result |
|---|---|
integer |
Поддерживается любое 32-разрядное целое число. |
0 |
Не поддерживается. |
-1 |
По умолчанию используется максимальное поддерживаемое значение. |
< -1 |
Не поддерживается. |
Поддерживаемые значения размера страницы по умолчанию
| Value | Result |
|---|---|
integer |
Любое положительное целое число меньше текущего max-page-size. |
0 |
Не поддерживается. |
-1 |
По умолчанию используется текущий параметр max-page-size. |
< -1 |
Не поддерживается. |
Относительное поведение next-link
Если next-link-relative это trueтак, значения разбиения nextLink на страницы используют относительные URL-адреса вместо абсолютных URL-адресов.
| Value | Example |
|---|---|
false (по умолчанию) |
"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
Если значение больше max-page-size, результаты будут ограничены max-page-size.
Пример: разбиение по страницам в REST
Request
GET https://localhost:5001/api/users
Полезная нагрузка ответа
{
"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=="
}
Следующая страница запроса
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Пример. Разбиение по страницам в GraphQL
Полезные данные запроса (запрос)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Полезная нагрузка ответа
{
"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=="
}
}
}
Следующая страница запроса
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Пример: доступ к запросам max-page-size
Используйте значение, задав max-page-size для параметра $limit REST или first (GraphQL).-1
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Кэш (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
cache |
object | ❌ Нет | - |
Конфигурация глобального кэша.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Нет | False |
runtime.cache |
ttl-seconds |
integer | ❌ Нет | 5 |
Tip
Свойство уровня cache.ttl-seconds сущности по умолчанию используется для этого глобального значения.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>
}
}
}
Important
Если глобальный enabledfalse, отдельный уровень enabled сущности не имеет значения.
Телеметрия (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
object | ❌ Нет | - |
Глобальная конфигурация телеметрии.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Нет | None |
runtime.telemetry |
application-insights |
object | ❌ Нет | - |
runtime.telemetry |
open-telemetry |
object | ❌ Нет | - |
Настраивает детализацию ведения журнала для каждого пространства имен. Это следует стандартным соглашениям по ведению журналов .NET и позволяет детализировать управление, хотя предполагается, что некоторые знания о конструкторе API данных внутренние. Построитель API данных — это открытый исходный код: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level можно перезагрузить как в разработке, так и в рабочей среде. В настоящее время это единственное свойство, которое поддерживает горячую перезагрузку в рабочей среде.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (телеметрия)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
object | ❌ Нет | - |
Настраивает ведение журнала в Application Insights.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Нет | False |
runtime.telemetry.application-insights |
connection-string |
string | ✔️ Да | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (телеметрия)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
object | ❌ Нет | - |
Настраивает ведение журнала для Open Telemetry.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Нет | true |
runtime.telemetry.open-telemetry |
endpoint |
string | ✔️ Да | None |
runtime.telemetry.open-telemetry |
headers |
string | ❌ Нет | None |
runtime.telemetry.open-telemetry |
service-name |
string | ❌ Нет | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
перечисление (grpc | httpprotobuf) |
❌ Нет | grpc |
Несколько заголовков разделены , запятыми.
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",
}
}
}
}
Дополнительные сведения о OTEL_EXPORTER_OTLP_HEADERS.
Note
gRPC (4317) быстрее и поддерживает потоковую передачу, но требует дополнительных действий по настройке. HTTP/protobuf (4318) проще и проще отлаживать, но менее эффективно.
Работоспособность (среда выполнения)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
health |
object | ❌ Нет | - |
Конфигурация конечной точки глобальной проверки работоспособности (/health).
Вложенные свойства
| Parent | Property | Type | Required | Default | Диапазон и заметки |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Нет | true |
|
runtime.health |
roles |
массив строк | ✔️ Да* | null |
*Обязательный в рабочем режиме |
runtime.health |
cache-ttl-seconds |
integer | ❌ Нет | 5 |
Мин: 0 |
runtime.health |
max-query-parallelism |
integer | ❌ Нет | 4 |
Мин: 1, Макс: 8 (зажато) |
Поведение в разработке и рабочей среде
| Condition | Поведение разработки | Поведение рабочей среды |
|---|---|---|
health.enabled = ложь |
403 статус |
403 статус |
health.enabled = верно |
Зависит от роли | Зависит от роли |
roles опущен или null |
Отображается работоспособности |
403 статус |
текущая роль не в roles |
403 статус |
403 статус |
текущая роль в roles |
Отображается работоспособности | Отображается работоспособности |
roles Включает anonymous |
Отображается работоспособности | Отображается работоспособности |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Если глобальный enabledfalse, отдельный уровень enabled сущности не имеет значения.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}