Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметры конфигурации, определяющие поведение среды выполнения.
Параметры разбиения на страницы
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 | 100 |
Максимальный размер ответа базы данных (МБ), разрешенный в одном результате |
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 | 30 |
Время жизни (секунды) для записи кэша отчетов проверки работоспособности |
Обзор формата
{
"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`)
}
}
Режим (среда выполнения узла)
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-introspection
false
скрытия схемы 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 |
Заметки о свойствах
- Если глобальный
enabled
false
, отдельный уровень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>
}
}
}
Note
При развертывании построителя API данных с помощью статических веб-приложений (предварительная версия) служба Azure автоматически внедряет в URL-адрес другую подпатку /data-api
. Это поведение обеспечивает совместимость с существующими функциями статического веб-приложения. Результирующая конечная точка будет /data-api/api/<entity>
. Это примечание относится только к статическим веб-приложениям.
Пример: 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 Simulator | EntraId | ) |
❌ Нет | AppService |
Определяет метод проверки подлинности, используемый построителем API данных.
Provider | Description |
---|---|
AppService |
EasyAuth через статические веб-приложения Azure.
X-MS-CLIENT-PRINCIPAL внедряется только в запросы, прошедшие проверку подлинности; Если он отсутствует, DAB обрабатывает запрос как анонимный. Проверка маркеров не выполняется DAB в этом режиме. Необязательный X-MS-API-ROLE заголовок может выбрать определенную роль. |
StaticWebApps |
[ Не рекомендуется ] Функционально идентично AppService . Используйте AppService . |
EntraId |
Прямая проверка JWT с помощью DAB (без интерфейсной части EasyAuth). Требуется Authorization: Bearer <JWT> для проверки подлинности доступа. Если заголовок отсутствует или недопустим, пользователь рассматривается как анонимный. Необязательный X-MS-API-ROLE заголовок может выбрать определенную роль. |
AzureAd |
[ Не рекомендуется ] Функционально идентично EntraId . Будущие версии DAB, возможно, удалите это значение. |
Simulator |
Только разработка и тестирование. Заголовки проверки подлинности не требуются; DAB создает контекст, прошедший проверку подлинности. Необязательный параметр X-MS-API-ROLE по-прежнему может быть отправлен для имитации роли. Не для использования в рабочей среде. См. локальную проверку подлинности. |
Tip
Поставщики StaticWebApps
проверки подлинности построителя данных (не рекомендуется) и AppService
поддерживают EasyAuth. EasyAuth не является формальным стандартом; Это псевдоним для проверки подлинности и авторизации службы приложений Azure, встроенной функции службы приложений Azure, функций Azure и статических веб-приложений Azure. Он не является частью OAuth, OIDC, SAML или любого другого открытого стандарта, хотя он использует эти протоколы под капюшоном. EasyAuth обрабатывает потоки входа с помощью поставщиков удостоверений, таких как Идентификатор Microsoft Entra, Google и GitHub.
"Простая" часть заключается в том, что вы включите его на портале Azure или с помощью шаблонов ARM без написания пользовательского ПО промежуточного слоя проверки подлинности. Распространенное недоразумение заключается в том, чтобы рассматривать EasyAuth как кроссплатформенный стандарт, когда, на самом деле, это функция Microsoft PaaS, основанная на существующих стандартах идентификации. В DAB оба StaticWebApps
(нерекомендуемые) и поставщики считывают одни и AppService
те же заголовки EasyAuth. Они ведут себя так же в DAB, но называются отдельно, чтобы разрешить различия в средах размещения Azure.
Format
{
"runtime": {
"host": {
"authentication": {
"provider": "AppService" | ...
}
}
}
}
Note
Если поставщик имеет значение EntraId
, JWT
требуется раздел.
Пример: Служба приложений
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
}
Пример: идентификатор Microsoft Entra
{
"host": {
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "00001111-aaaa-2222-bbbb-3333cccc4444",
"issuer": "https://login.microsoftonline.com/98765f43-21ba-400c-a5de-1f2a3d4e5f6a/v2.0"
}
}
}
}
Пример: симулятор (только для разработки)
{
"host": {
"mode": "development", // Simulator is not intended for production
"authentication": {
"provider": "Simulator"
}
}
}
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 |
Поддерживаемые значения максимального размера страницы
Value | Result |
---|---|
integer |
Поддерживается любое 32-разрядное целое число. |
0 |
Не поддерживается. |
-1 |
По умолчанию используется максимальное поддерживаемое значение. |
< -1 |
Не поддерживается. |
Поддерживаемые значения размера страницы по умолчанию
Value | Result |
---|---|
integer |
Любое положительное целое число меньше текущего max-page-size . |
0 |
Не поддерживается. |
-1 |
По умолчанию используется текущий параметр max-page-size . |
< -1 |
Не поддерживается. |
Format
{
"runtime": {
"pagination": {
"max-page-size": <integer; default: 100000>,
"default-page-size": <integer; default: 100>
}
}
}
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
Если глобальный enabled
false
, отдельный уровень 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 |
массив строк | ✔️ Да | None |
runtime.health |
cache-ttl-seconds |
integer | ❌ Нет | 5 |
Поведение в разработке и рабочей среде
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>
}
}
Note
Если глобальный enabled
false
, отдельный уровень enabled
сущности не имеет значения.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10
}
}