Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Konfigurationsinställningar som avgör körningsbeteende.
Sidnumreringsinställningar
| Property | Default | Description | 
|---|---|---|
| runtime.pagination.max sidstorlek | Definierar maximala poster per sida | |
| runtime.pagination.default-page-size | Anger standardposter per svar | 
REST-inställningar
| Property | Default | Description | 
|---|---|---|
| runtime.rest.path | "/api" | 
Bassökväg för REST-slutpunkter | 
| runtime.rest.enabled | true | 
Tillåter aktivering eller inaktivering av REST-begäranden för alla entiteter | 
| runtime.rest.request-body-strict | true | 
Tillåter inte överflödiga fält i begärandetexten när det är sant | 
GraphQL-inställningar
| Property | Default | Description | 
|---|---|---|
| runtime.graphql.allow-introspection | true | 
Tillåter frågekörning av underliggande GraphQL-schema | 
| runtime.graphql.path | "/graphql" | 
Bassökväg för GraphQL-slutpunkten | 
| runtime.graphql.enabled | true | 
Tillåter aktivering eller inaktivering av GraphQL-begäranden för alla entiteter | 
| runtime.graphql.depth-limit | null | 
Maximalt tillåtet djup för en GraphQL-fråga | 
| runtime.graphql.multiple-mutations.create.enabled | false | 
Tillåter mutationer med flera skapande för alla entiteter | 
Värdinställningar
| Property | Default | Description | 
|---|---|---|
| runtime.host.max-response-size-mb | 100 | 
Maximal storlek (MB) för databassvar som tillåts i ett enda resultat | 
| runtime.host.mode | "production" | 
Körningsläge; "production" eller "development" | 
CORS-inställningar
| Property | Default | Description | 
|---|---|---|
| runtime.host.cors.origins | [] | 
Tillåtna CORS-ursprung | 
| runtime.host.cors.allow-credentials | false | 
Anger värde för Access-Control–Allow-Credentials-huvud | 
Autentiseringsinställningar
| Property | Default | Description | 
|---|---|---|
| runtime.host.authentication.provider | null | 
Autentiseringsprovider | 
| runtime.host.authentication.jwt.audience | null | 
JWT-målgrupp | 
| runtime.host.authentication.jwt.issuer | null | 
JWT-utfärdare | 
Cacheinställningar
| Property | Default | Description | 
|---|---|---|
| runtime.cache.enabled | false | 
Möjliggör cachelagring av svar globalt | 
| runtime.cache.ttl-seconds | 5 | 
Time to live (sekunder) för global cache | 
Inställningar för telemetri
| Property | Default | Description | 
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null | 
Application Insights-anslutningssträng | 
| runtime.telemetry.application-insights.enabled | false | 
Aktiverar eller inaktiverar Application Insights-telemetri | 
| runtime.telemetry.open-telemetry.endpoint | null | 
Url för OpenTelemetry-insamlare | 
| runtime.telemetry.open-telemetry.headers | {} | 
OpenTelemetry-exportrubriker | 
| runtime.telemetry.open-telemetry.service-name | "dab" | 
OpenTelemetry-tjänstnamn | 
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" | 
OpenTelemetry-protokoll ("grpc" eller "httpprotobuf") | 
| runtime.telemetry.open-telemetry.enabled | true | 
Aktiverar eller inaktiverar OpenTelemetry | 
| runtime.telemetry.log-level.namespace | null | 
Åsidosättning av namnområdesspecifik loggnivå | 
| runtime.health.enabled | true | 
Aktiverar eller inaktiverar slutpunkten för hälsokontroll globalt | 
| runtime.health.roles | null | 
Tillåtna roller för den omfattande hälsoslutpunkten | 
| runtime.health.cache-ttl-seconds | 30 | 
Time to live (sekunder) för hälsokontrollrapportens cachepost | 
Formatöversikt
{
  "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`)
  }
}
Läge (värdkörning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
host | 
uppräkning (production | development) | 
❌ Nej | production | 
Utvecklingsbeteende
- Aktiverad Nitro (tidigare Banana Cake Pop) för GraphQL-testning
 - Aktiverat Swagger-användargränssnitt för REST-testning
 - Aktiverade anonyma hälsokontroller
 - Ökad loggningsveroalitet (felsökning)
 
Format
{
  "runtime": {
    "host": {
      "mode": "production" (default) | "development"
    }
  }
}
Maximal svarsstorlek (värdkörning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host | 
max-response-size-mb | 
integer | ❌ Nej | 158 | 
Anger den maximala storleken (i megabyte) för ett givet resultat. Eftersom stora svar kan belasta systemet begränsar max-response-size-mb du den totala storleken (skiljer sig från radantal) för att förhindra överbelastning, vilket är särskilt med stora kolumner som text eller JSON.
| Value | Result | 
|---|---|
| inte inställt | Använd standard | 
null | 
Använd standard | 
integer | 
Alla positiva 32-bitars heltal | 
<= 0 | 
Stöds inte | 
Format
{
  "runtime": {
    "host": {
      "max-response-size-mb": <integer; default: 158>
    }
  }
}
GraphQL (körning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
graphql | 
object | ❌ Nej | - | 
Global GraphQL-konfiguration.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.graphql | 
enabled | 
boolean | ❌ Nej | None | 
runtime.graphql | 
path | 
string | ❌ Nej | "/graphql" | 
runtime.graphql | 
depth-limit | 
integer | ❌ Nej | Ingen (obegränsad) | 
runtime.graphql | 
allow-introspection | 
boolean | ❌ Nej | True | 
runtime.graphql | 
multiple-mutations.create.enabled | 
boolean | ❌ Nej | False | 
Egenskapsanteckningar
- Undersökvägar tillåts inte för egenskapen 
path. - Använd 
depth-limitför att begränsa kapslade frågor. - Ange 
allow-introspectiontillfalseför att dölja GraphQL-schemat. - Använd 
multiple-mutationsför att infoga flera entiteter i en enda 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>
        }
    }
  }
}
Exempel: flera mutationer
Configuration
{
  "runtime": {
    "graphql": {
      "multiple-mutations": {
        "create": {
          "enabled": true
        }
      }
    }
  },
  "entities": {
    "User": {
      "source": "dbo.Users",
      "permissions": [
        {
          "role": "anonymous",
          "actions": ["create"] // entity permissions are required
        }
      ]
    }
  }
}
GraphQL-mutation
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 (runtime)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
rest | 
object | ❌ Nej | - | 
Global REST-konfiguration.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.rest | 
enabled | 
boolean | ❌ Nej | None | 
runtime.rest | 
path | 
string | ❌ Nej | "/api" | 
runtime.rest | 
request-body-strict | 
boolean | ❌ Nej | True | 
Egenskapsanteckningar
- Om global 
enabledärfalsespelar den enskilda entitetsnivånenabledingen roll. - Egenskapen 
pathstöder inte undersökvägsvärden som/api/data. - 
              
request-body-strictintroducerades för att förenkla .NET POCO-objekt. 
request-body-strict | 
Behavior | 
|---|---|
true | 
Extra fält i begärandetexten orsakar ett BadRequest undantag. | 
false | 
Extra fält i begärandetexten ignoreras. | 
Format
{
  "runtime": {
    "rest": {
      "enabled": <true> (default) | <false>,
      "path": <string> (default: /api),
      "request-body-strict": <true> (default) | <false>
    }
  }
}
Note
När du distribuerar Data API Builder med Static Web Apps (förhandsversion) matar Azure-tjänsten automatiskt in en annan undersökväg /data-api till URL:en. Det här beteendet säkerställer kompatibilitet med befintliga funktioner för statisk webbapp. Den resulterande slutpunkten skulle vara /data-api/api/<entity>. Den här anteckningen är endast relevant för Static Web Apps.
Exempel: request-body-strict
- Kolumner med ett 
default()värde ignoreras endast närINSERTderas värde i nyttolasten ärnull. DärförINSERTkan åtgärder idefault()kolumner, närrequest-body-strictärtrue, inte resultera i explicitanullvärden. För att åstadkomma detta krävs enUPDATEåtgärd. - Kolumner med en 
default()ignoreras inte underUPDATEoavsett nyttolastvärde. - Beräknade kolumner ignoreras alltid.
 - Autogenererade kolumner ignoreras alltid.
 
Exempeltabell
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
);
Begär nyttolast
{
  "Id": 999,
  "Name": "Alice",
  "Age": null,
  "IsAdmin": null,
  "IsMinor": false,
  "ExtraField": "ignored"
}
Infoga beteende när 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.
Svarslast
{
  "Id": 1,          // Auto-generated by the database
  "Name": "Alice",
  "Age": 18,        // Default applied
  "IsAdmin": false, // Default applied
  "IsMinor": true   // Computed
}
Uppdatera beteende när request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Svarslast
{
  "Id": 1,
  "Name": "Alice Updated",
  "Age": null,
  "IsAdmin": false,
  "IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (värdkörning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host | 
cors | 
object | ❌ Nej | - | 
Global CORS-konfiguration.
Tip
CORS står för "Resursdelning mellan ursprung". Det är en webbläsarsäkerhetsfunktion som styr om webbsidor kan göra begäranden till en annan domän än den som betjänade dem.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host.cors | 
allow-credentials | 
boolean | ❌ Nej | False | 
runtime.host.cors | 
origins | 
strängmatris | ❌ Nej | None | 
Note
Egenskapen allow-credentials anger Access-Control-Allow-Credentials CORS-huvudet.
Format
{
  "runtime": {
    "host": {
      "cors": {
        "allow-credentials": <true> (default) | <false>,
        "origins": ["<array-of-strings>"]
      }
    }
  }
}
Note
Jokertecknet * är giltigt som ett värde för origins.
Provider (Autentiseringsvärdkörning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host.authentication | 
provider | 
uppräkning (AppServiceSimulator |  | EntraId |  Custom) | 
❌ Nej | AppService | 
Definierar den autentiseringsmetod som används av data-API-byggaren.
Endast anonym (autentiseringsprovider)
{
 "host": {
    // omit the authentication section
 }
}
När hela authentication avsnittet utelämnas från filen dab-config.json används ingen autentiseringsprovider. I det här fallet fungerar Data API Builder i läget "no-auth". I det här läget letar DAB inte efter några token eller Authorization rubriker. Huvudet X-MS-API-ROLE ignoreras också i den här konfigurationen.
[! Obs! Varje begäran som kommer in i motorn tilldelas automatiskt och tilldelas omedelbart systemrollen
anonymous. Åtkomstkontroll hanteras sedan exklusivt av de behörigheter som du definierar för varje entitet.
Ett exempel på entitetsbehörigheter.
{
  "entities": {
    "Book": {
      "source": "dbo.books",
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "read" ]
        }
      ]
    }
  }
}
I det här exemplet, eftersom ingen authentication provider har konfigurerats, anses alla inkommande begäranden automatiskt vara från en anonymous användare. Matrisen permissions för entiteten Book ger anonymous uttryckligen rollen möjlighet att utföra read åtgärder. Alla försök att utföra andra åtgärder (till exempel , update, delete) eller åtkomst till andra entiteter som createinte har konfigurerats för anonymous åtkomst nekas.
StaticWebApps (autentiseringsprovider) [inaktuell]
{
 "host": {
  "authentication": {
   "provider": "StaticWebApps"
  }
 }
}
Den här providern är inaktuell eftersom förhandsversionen Data Connections av Static Web Apps drogs tillbaka i november 2025. Även om den fortfarande fungerar har den utformats för en äldre implementering av autentisering i Azure Static Web Apps. Utvecklare bör migrera till providern AppService för bättre långsiktig support och konsekvens med Azures bredare "Easy Auth"-plattform.
[! Obs! Migrering är inte lika enkelt som att ändra providernamnet i konfigurationsfilen. Leverantörerna
StaticWebAppsochAppServiceförväntar sig olika JSON-strukturer ix-ms-client-principalhuvudet för bearbetning av roller.
AppService (autentiseringsprovider)
{
 "host": {
  "authentication": {
   "provider": "AppService"
  }
 }
}
Den här providern är avsedd för program som finns i Azure App Service, till exempel Azure Container Apps. Azure-värdmiljön hanterar autentisering och skickar sedan användarens identitetsinformation till programmet via begärandehuvuden. Den är avsedd för utvecklare som vill ha en enkel, out-of-the-box-autentiseringslösning som hanteras av Azure-plattformen.
Den här providern använder inte en JWT-token från Authorization huvudet. Den förlitar sig på en särskild rubrik, X-MS-CLIENT-PRINCIPAL, som matas in av App Service-plattformen. Det här huvudet innehåller ett base64-kodat JSON-objekt med användarens identitetsinformation.
              Anonym: Om providern AppService är konfigurerad men en begäran kommer utan X-MS-CLIENT-PRINCIPAL huvudet tilldelas begäran till systemrollen anonymous.
Den avkodade JSON:en X-MS-CLIENT-PRINCIPAL från rubriken ser vanligtvis ut så här:
{
  "auth_typ": "aad",
  "claims": [
    {"typ": "roles", "val": "admin"},
    {"typ": "roles", "val": "contributor"}
  ],
  "name_typ": "...",
  "role_typ": "..."
}
Rollerna finns i matrisen claims .
Om rubriken X-MS-API-ROLE
- 
              Roll och beteende: Rubriken 
X-MS-API-ROLEanvänds för att ange vilken roll användaren vill ta för den aktuella begäran. Värdet för det här huvudet måste matcha ett av rollvärdena som finns iclaimsobjektetsX-MS-CLIENT-PRINCIPALmatris. - 
              Krävs det?: Nej. 
              
X-MS-API-ROLEOm huvudet saknas bearbetas begäran i kontexten för systemrollenauthenticated. Det innebär att användaren identifieras som inloggad, men inte som någon specifik programdefinierad roll från token. - 
              Beteende vid matchning: Om 
X-MS-API-ROLEhuvudet anges och dess värde matchar en roll i klientensclaimshuvudnamn, antar användaren den rollen för begäran. - 
              Beteende vid matchningsfel: Om 
X-MS-API-ROLEhuvudet anges men värdet inte matchar någon roll i klientobjektet avvisas begäran med en403 Forbiddenstatuskod. Detta säkerställer att en användare inte kan göra anspråk på en roll som de inte har tilldelats. 
EntraId (autentiseringsprovider)
{
 "host": {
  "authentication": {
   "provider": "EntraId", // previously AzureAd
   "jwt": {
    "audience": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "issuer": "https://login.microsoftonline.com/98765f43-21ba-400c-a5de-1f2a3d4e5f6a/v2.0"
   }
  }
 }
}
Den här providern skyddar slutpunkter med användar- och programidentiteter i Microsoft Entra. Det är idealiskt för alla tjänster där användare eller andra tjänster behöver säker åtkomst i Entra-klientorganisationen.
[! OBS! Providern
EntraIdhetteAzureAdtidigare . Det gamla namnet fungerar fortfarande, men utvecklare uppmanas att migrera sina konfigurationer frånAzureAdtillEntraId.
Den här providern förväntar sig en JWT Bearer-standardtoken i Authorization rubriken som utfärdats av Microsoft Entra. Token måste konfigureras för det specifika programmet (med anspråket audience ). Rollerna för användaren eller tjänstens huvudnamn förväntas finnas i ett anspråk i token. Koden söker efter ett roles anspråk som standard.
              Anonym: Om providern EntraId är konfigurerad men en begäran kommer utan Authorization huvudet tilldelas begäran till systemrollen anonymous.
En avkodad JWT-nyttolast kan se ut så här:
{
  "aud": "...", // Audience - your API
  "iss": "https://login.microsoftonline.com/{tenant-id}/v2.0", // Issuer
  "oid": "...", // User or principal object ID
  "roles": [
    "reader",
    "writer"
  ],
  // ... other claims
}
Om rubriken X-MS-API-ROLE
- 
              Roll och beteende: Rubriken 
X-MS-API-ROLEanvänds för att ange en roll som användaren vill anta för begäran. Värdet för det här huvudet måste matcha ett av rollvärdena som finns i anspråketrolesför JWT-token. - 
              Krävs det?: Nej. 
              
X-MS-API-ROLEOm huvudet saknas bearbetas begäran i kontexten för systemrollenauthenticated. Det innebär att användaren identifieras som inloggad, men inte som någon specifik programdefinierad roll från token. - 
              Beteende vid matchning: Om 
X-MS-API-ROLErubriken tillhandahålls och den matchar en roll i anspråketrolesär användarens kontext inställd på den rollen. - 
              Beteende vid matchningsfel: Om 
X-MS-API-ROLErubriken anges men dess värde inte matchar någon roll i anspråketrolesavvisas begäran med en403 Forbiddenstatuskod. Detta säkerställer att en användare inte kan göra anspråk på en roll som de inte har tilldelats. 
Anpassad (autentiseringsprovider)
{
 "host": {
  "authentication": {
   "provider": "Custom",
   "jwt": {
    "audience": "<client-id-or-api-audience>",
    "issuer": "https://<your-domain>/oauth2/default"
   }
  }
 }
}
Den här providern är avsedd för utvecklare som vill integrera Data API Builder med en identitetsprovider från tredje part (till exempel Auth0, Okta eller en anpassad identitetsserver) som utfärdar JWTs. Det ger flexibiliteten att konfigurera de förväntade audience token och issuer token.
Providern Custom förväntar sig en JWT Bearer-standardtoken i Authorization rubriken. Den viktigaste skillnaden från providern EntraId är att du konfigurerar den giltiga issuer och audience i data-API-byggarens konfigurationsfil. Providern validerar token genom att kontrollera att den betrodda utfärdaren har utfärdat den. Användarens roller förväntas finnas i ett roles anspråk inom JWT-nyttolasten.
[! OBS! I vissa fall måste utvecklare, beroende på identitetsprovidern från tredje part, tvinga strukturen för sin JWT att matcha den struktur som förväntas av Data API-byggare (visas nedan).
              Anonym: Om providern Custom är konfigurerad men en begäran kommer utan Authorization huvudet tilldelas begäran till systemrollen anonymous.
En avkodad JWT-nyttolast för en custom provider kan se ut så här:
{
  "aud": "my-api-audience", // Must match configuration
  "iss": "https://my-custom-issuer.com/", // Must match configuration
  "sub": "user-id",
  "roles": [
    "editor",
    "viewer"
  ],
  // ... other claims
}
Om rubriken X-MS-API-ROLE
- 
              Roll och beteende: Rubriken 
X-MS-API-ROLEfungerar precis som med providernEntraId. Det gör att användaren kan välja en av sina tilldelade roller. Värdet för den här rubriken måste matcha en av rollerna från anspråketrolesi den anpassade JWT-token. - 
              Krävs det?: Nej. 
              
X-MS-API-ROLEOm rubriken saknas behandlas användaren som i systemrollenauthenticated. - 
              Beteende vid matchning: Om 
X-MS-API-ROLEhuvudets värde matchar en roll i JWT-anspråketrolesanges användarens kontext till den rollen i auktoriseringssyfte. - 
              Beteende vid matchningsfel: Om 
X-MS-API-ROLEhuvudets värde inte matchar någon roll i anspråketrolesavvisas begäran med en403 Forbiddenstatuskod. Detta säkerställer att en användare inte kan göra anspråk på en roll som de inte har tilldelats. 
Simulator (autentiseringsprovider)
Den här providern är utformad för att göra det enkelt för utvecklare att testa sin konfiguration, särskilt authorization principer, utan att behöva konfigurera en fullständig autentiseringsprovider som Entra Identity eller EasyAuth. Den simulerar en authenticated användare.
Providern Simulator använder inte JWT-token. Autentisering simuleras. När du använder den här providern behandlas alla begäranden som om de kommer från en autentiserad användare.
Om rubriken X-MS-API-ROLE
- 
              Roll och beteende: Rubriken 
X-MS-API-ROLEär det enda sättet att ange en roll när du använderSimulator. Eftersom det inte finns någon token med en lista över roller litar systemet implicit på rollen som skickas i det här huvudet. - Krävs det?: Nej.
 - 
              Beteende vid frånvaro: Om 
X-MS-API-ROLEhuvudet saknas bearbetas begäran i kontexten för systemrollenauthenticated. - 
              Beteende vid närvaro: Om 
X-MS-API-ROLErubriken finns bearbetas begäran i kontexten för den roll som anges i huvudets värde. Det finns ingen validering mot en anspråkslista, så utvecklaren kan simulera vilken roll de behöver för att testa sina principer. 
Simulator i produktion
              authentication.provider Om är inställt på Simulatorruntime.host.mode medan är production, kommer Data API Builder inte att starta.
"host": {
  "mode": "production", // or "development"
  "authentication": {
    "provider": "Simulator" 
  }
}
JWT (autentiseringsvärdkörning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host.authentication | 
jwt | 
object | ❌ Nej | - | 
Global JSON-webbtokenkonfiguration (JWT).
              
              
            
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.host.authentication.jwt | 
audience | 
string | ❌ Nej | None | 
runtime.host.authentication.jwt | 
issuer | 
string | ❌ Nej | None | 
Format
{
  "runtime": {
    "host": {
      "authentication": {
        "jwt": {
          "audience": "<client-id>",
          "issuer": "<issuer-url>"
        }
      }
    }
  }
}
Sidnumrering (Runtime)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
pagination | 
object | ❌ Nej | - | 
Globala sidnumreringsgränser för REST- och GraphQL-slutpunkter.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.pagination | 
max-page-size | 
int | ❌ Nej | 100,000 | 
runtime.pagination | 
default-page-size | 
int | ❌ Nej | 100 | 
Värden med maximal sidstorlek som stöds
| Value | Result | 
|---|---|
integer | 
Alla positiva 32-bitars heltal stöds. | 
0 | 
Stöds inte. | 
-1 | 
Standardvärdet är det högsta värde som stöds. | 
< -1 | 
Stöds inte. | 
Standardvärden för sidstorlek som stöds
| Value | Result | 
|---|---|
integer | 
Alla positiva heltal som är mindre än det aktuella max-page-size. | 
0 | 
Stöds inte. | 
-1 | 
Standardinställningen för aktuell max-page-size. | 
< -1 | 
Stöds inte. | 
Format
{
  "runtime": {
    "pagination": {
      "max-page-size": <integer; default: 100000>,
      "default-page-size": <integer; default: 100>
    }
  }
}
Note
När värdet är större än max-page-sizebegränsas resultatet till max-page-size.
Exempel: Växling i REST
Request
GET https://localhost:5001/api/users
Svarslast
{
  "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=="
}
Begär nästa sida
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Exempel: Växling i GraphQL
Begär nyttolast (fråga)
query {
  users {
    items {
      Id
      Name
      Age
      IsAdmin
      IsMinor
    }
    hasNextPage
    endCursor
  }
}
Svarslast
{
  "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=="
    }
  }
}
Begär nästa sida
query {
  users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
    items {
      Id
      Name
      Age
      IsAdmin
      IsMinor
    }
    hasNextPage
    endCursor
  }
}
Exempel: Åtkomst i max-page-size begäranden
              max-page-size Använd värdet genom att ange $limit (REST) eller first (GraphQL) till -1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
  users(first: -1) {
    items {
      ...
    }
  }
}
Cache (körning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
cache | 
object | ❌ Nej | - | 
Global cachekonfiguration.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.cache | 
enabled | 
boolean | ❌ Nej | False | 
runtime.cache | 
ttl-seconds | 
integer | ❌ Nej | 5 | 
Tip
Egenskapen på entitetsnivå cache.ttl-seconds är standardvärdet för det här globala värdet.
Format
{
  "runtime": {
    "cache":  {
      "enabled": <boolean>,
      "ttl-seconds": <integer>
    }
  }
}
Important
Om global enabled är falsespelar den enskilda entitetsnivån enabled ingen roll.
Telemetri (körning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
telemetry | 
object | ❌ Nej | - | 
Global telemetrikonfiguration.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.telemetry | 
log-level | 
dictionary | ❌ Nej | None | 
runtime.telemetry | 
application-insights | 
object | ❌ Nej | - | 
runtime.telemetry | 
open-telemetry | 
object | ❌ Nej | - | 
Konfigurerar loggning av verbositet per namnområde. Detta följer standardkonventionerna för .NET-loggning och tillåter detaljerad kontroll, även om det förutsätter viss förtrogenhet med interna Data API-byggare. Data-API-byggare är öppen källkod: https://aka.ms/dab
Format
{
  "runtime": {
    "telemetry": {
      "log-level": {
        "namespace": "log-level",
        "namespace": "log-level"
      }
    }
  }
}
Tip
              log-level kan laddas om i både utveckling och produktion. Det är för närvarande den enda egenskapen som stöder snabb inläsning i produktion.
Example
{
  "runtime": {
    "telemetry": {
      "log-level": {
        "Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
        "Azure.DataApiBuilder.Core": "information",
        "default": "warning"
      }
    }
  }
}
Application Insights (telemetri)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.telemetry | 
application-insights | 
object | ❌ Nej | - | 
Konfigurerar loggning till Application Insights.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.telemetry.application-insights | 
enabled | 
boolean | ❌ Nej | False | 
runtime.telemetry.application-insights | 
connection-string | 
string | ✔️ Ja | None | 
Format
{
  "runtime": {
    "telemetry": {
      "application-insights": {
        "enabled": <true; default: true> | <false>
        "connection-string": <string>
      }
    }
  }
}
OpenTelemetry (telemetri)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.telemetry | 
open-telemetry | 
object | ❌ Nej | - | 
Konfigurerar loggning till Öppna telemetri.
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.telemetry.open-telemetry | 
enabled | 
boolean | ❌ Nej | true | 
runtime.telemetry.open-telemetry | 
endpoint | 
string | ✔️ Ja | None | 
runtime.telemetry.open-telemetry | 
headers | 
string | ❌ Nej | None | 
runtime.telemetry.open-telemetry | 
service-name | 
string | ❌ Nej | "dab" | 
runtime.telemetry.open-telemetry | 
exporter-protocol | 
uppräkning (grpc | httpprotobuf) | 
❌ Nej | grpc | 
Flera rubriker är , avgränsade (kommatecken).
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",
      }
    }
  }
}
Läs mer om OTEL_EXPORTER_OTLP_HEADERS.
Note
gRPC (4317) är snabbare och stöder direktuppspelning men kräver mer konfiguration. HTTP/protobuf (4318) är enklare och enklare att felsöka men mindre effektivt.
Hälsa (körning)
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime | 
health | 
object | ❌ Nej | - | 
Konfiguration av slutpunkt för global hälsokontroll (/health).
Kapslade egenskaper
| Parent | Property | Type | Required | Default | 
|---|---|---|---|---|
runtime.health | 
enabled | 
boolean | ❌ Nej | true | 
runtime.health | 
roles | 
strängmatris | ✔️ Ja | None | 
runtime.health | 
cache-ttl-seconds | 
integer | ❌ Nej | 5 | 
Beteende i utveckling jämfört med produktion
| Condition | Utvecklingsbeteende | Produktionsbeteende | 
|---|---|---|
              health.enabled = falskt | 
              403 status | 
              403 status | 
              health.enabled = sant | 
Beror på roll | Beror på roll | 
              roles utelämnas eller utelämnas null | 
Hälsa visas | 
              403 status | 
aktuell roll som inte finns i roles | 
              403 status | 
              403 status | 
aktuell roll i roles | 
Hälsa visas | Hälsa visas | 
              roles Innehåller anonymous | 
Hälsa visas | Hälsa visas | 
Format
{
  "health": {
    "enabled": <true> (default) | <false>,
    "roles": [ <string> ], // required in production
    "cache-ttl-seconds": <integer>
  }
}
Note
Om global enabled är falsespelar den enskilda entitetsnivån enabled ingen roll.
Example
{
  "health": {
    "enabled": true,
    "roles": ["admin", "support"],
    "cache-ttl-seconds": 10
  }
}