Azure / data-api-builder

Data API builder provides modern REST and GraphQL endpoints to your Azure Databases and on-prem stores.
https://aka.ms/dab/docs
MIT License
787 stars 142 forks source link

[Enhancement]: Introduce `dab configure` #2251

Open JerryNixon opened 3 weeks ago

JerryNixon commented 3 weeks ago

Today, it's a bit of a trick to know which verb to use in order to add, update, or modify non-entity information in the configuration file. This new verb configure is intended to set all data outside of entity information - entity information is handled by the add / update / delete verbs and is already (mostly) comprehensive.

Configuration File Property Path CLI Flag Data Type Nullable
data-source.
database-type
--data-source.database-type String: MSSQL, PostgreSQL, CosmosDB, MySQL
data-source.
connection-string
--data-source.connection-string String
data-source.
options.database
--data-source.options.database String
data-source.
options.container
--data-source.options.container String
data-source.
options.schema
--data-source.options.schema String
data-source.
options.set-session-context
--data-source.options.set-session-context Boolean: true, false (default: false)
data-source-files --data-source-files Array of strings
runtime.
rest.path
--runtime.rest.path String (default: /api)
runtime.
rest.enabled
--runtime.rest.enabled Boolean: true, false (default: true)
runtime.
rest.request-body-strict
--runtime.rest.request-body-strict Boolean: true, false (default: true)
runtime.
graphql.allow-introspection
--runtime.graphql.allow-introspection Boolean: true, false (default: true)
runtime.
graphql.path
--runtime.graphql.path String (default: /graphql)
runtime.
graphql.enabled
--runtime.graphql.enabled Boolean: true, false (default: true)
runtime.
graphql.multiple-mutations.create.enabled
--runtime.graphql.multiple-mutations.create.enabled Boolean: true, false (default: true)
runtime.
host.mode
--runtime.host.mode String: Development, Production
runtime.
host.cors.origins
--runtime.host.cors.origins Array of strings
runtime.
host.cors.allow-credentials
--runtime.host.cors.allow-credentials Boolean: true, false (default: false)
runtime.
host.authentication.provider
--runtime.host.authentication.provider String: StaticWebApps, AppService, AzureAD, Jwt
runtime.
host.authentication.jwt.audience
--runtime.host.authentication.jwt.audience Array of strings
runtime.
host.authentication.jwt.issuer
--runtime.host.authentication.jwt.issuer String
runtime.
cache.enabled
--runtime.cache.enabled Boolean: true, false (default: false)
runtime.
cache.ttl-seconds
--runtime.cache.ttl-seconds Integer (default: 3600)
runtime.
telemetry.application-insights.connection-string
--runtime.telemetry.application-insights.connection-string String
runtime.
telemetry.application-insights.enabled
--runtime.telemetry.application-insights.enabled Boolean: true, false (default: false)
runtime.
host.log-level
--runtime.host.log-level String: Debug, Information, Warning, Error, Fatal (default: Information)

Some of these values will be set in dab init and there is no plan to change this. The purpose of dab configure is to ensure the CLI is comprehensive and to allow individual modifications through the CLI.

### Tasks