ODataDB Application Settings

ODataDB Application Settings

ODataDB reads the configuration from the JSON configuration files like appsettings.json and appsettings.Production.json.

The appsettings.json file contains settings for all environments. The appsettings.Production.json file contains settings for the Production environment.

See details at JSON Configuration Provider.

The appsettings.json file can be empty:


Below is a sample of the appsettings.Production.json file:

  "AllowedHosts": "*",
  "Kestrel": {
    "EndPoints": {
      "Http": {
        "Url": "http://localhost:5002"
  "Logging": {
    "LogLevel": {
      "Default": "Warning",
      "System": "Information",
      "Microsoft": "Information"
  "ODataDB": {
    "WebRoot": "wwwroot",
    "ApiRoot": "v4",
    "EditRoots": "edit",
    "EditPages": {
        "edit": "edit.htm"
    "MaxPageSize": 1000,
    "UppercaseNamesInLowercase": true,
    "DefaultContainerName": "default",
    "DisableMetadataCache": false,
    "DisableEditPageCache": false,
    "IncludeAnnotations": true,
    "PublishConfigurationObjects": true,
    "PublishEditProcedures": true,
    "EnableCodeBrowser": true,
    "BinaryAsHex": false,
    "BigNumbersAsString": false,
    "FunctionPrefixes": "xl_validation_list_, xl_parameter_values_",
    "FunctionSuffixes": "_select",
    "LanguageParameters": "data_language, DataLanguage"
    "TraceSQL": true,
    "StopEnabled": false
  "ODataDBW": {
    "WebRoot": "wwwroot",
    "StopEnabled": true
  "ConnectionStrings": {
    "mssql": {
      "AllowDatabaseChange": true,
      "ProviderName": "System.Data.SqlClient",
      "ConnectionString": "Data Source=mssql.savetodb.com;Initial Catalog=master;User ID=user;Pwd=pass"
    "mssql-011": {
      "Offline": false,
      "Home": "en-us/sample01.htm",
      "QueryList": "",
      "HiddenSchemas": "logs doc xls",
      "ProviderName": "System.Data.SqlClient",
      "ConnectionString": "Data Source=mssql.savetodb.com;Initial Catalog=AzureDemo100;User ID=sample01_user1;Pwd=Usr_2011#_Xls4168"

Keys and sections:

See details at Host filtering with ASP.NET Core Kestrel web server.
Use * to serve all endpoints.
See details at Kestrel web server implementation in ASP.NET Core.
Use it to change the endpoint port.
See details at Logging Configuration.
This group contains ODataDB settings.
This group overrides settings for ODataDB for .NET Framework.
It can contains the WebRoot and StopEnabled settings only.
This value defines a folder with website contents.
The default value is "wwwroot".
This value defines an API root, like 'v4' in the /v4/mssql/ endpoint.
The value is common for all endpoints.
This space-separated value defines edit roots, like 'edit' in the /edit/mssql/ endpoint.
This dictionary defines HTML pages for edit roots.
For example, ODataDB returns the edit.htm page content for the /edit/mssql/ endpoint.
This value defines the maximum number of records returned in the response.
This value enables converting uppercase object and column names to lowercase.
ODataDB leaves mixed-case names as is.
This value defines an entity container and its schema name.
This value allows disabling the metadata model cache.
Developers can use it to load the model from a database every time.
Note that you can use the URL system parameter $reloadMetadata=true instead.
This value allows disabling the edit page cache.
Developers can use it when developing edit pages.
This value allows disabling the $metadata annotations.
The built-in ODataDB client does not depend on this option.
This value enables publishing configuration objects like xls.objects, xls.handlers and other objects of the SaveToDB Framework.
The default value is false.
This value enables publishing edit procedures like usp_cashbook2_insert, usp_cashbook2_update, and usp_cashbook2_delete.
The default value is false.
This value allows getting object definitions using the /$definition URL segment.
The default value is false.
This value allows serializing binary data as hex strings by default contrary to base64.
Note that you can use the URL system parameter $binaryAsHex=true instead.
This value allows serializing big numbers that lose precision in JavaScript as strings.
Note that you can use the URL system parameter $bigNumbersAsString=true instead.
This comma-separated value defines prefixes of stored procedure names to assign the function type instead of the default action type.
The used value contains prefixes for SaveToDB and ODataDB examples.
This comma-separated value defines suffixes of stored procedure names to assign the function type instead of the default action type.
The used value contains suffixes for SaveToDB and ODataDB examples.
This comma-separated value defines language context parameter names.
ODataDB does not publish such parameters in the model and passes two-character language values automatically.
ODataDB detects a language by a URL segment like /en-us/, /en-gb/, or just /en/.
The used value contains language-context parameters used by the SaveToDB add-in.
This value enables SQL command tracing.
This value allows stopping the application using the /v4/$stop request.
This dictionary defines connection names and related connection strings.
ODataDB uses connection names to configure endpoints. For example, the sample defines base endpoints like /v4/mssql/ and /v4/mssql-011/.
This value defines a provider name.
This value defines a connection string.
Use a real username and password or the 'user' and 'pass' placeholders.
In the last case, ODataDB requires a username and password when a user connects to the endpoint.
This value allows changing a database via the connection name in URL in the form like <connection>:<database>.
For example, a user can use the URL like /edit/mssql:AzureDemo100/ to connect to the AzureDemo100 database.
The default value is false.
This value allows disabling the endpoint.
ODataDB immediately returns an offline message without trying to connect to the database.
This value allows setting the homepage.
ODataDB redirects to it when a user clicks the Home button.
To open the default page, hold the Ctrl key while clicking the Home button.
This value defines a view in the SaveToDB QueryList format to advertise the view objects only in the service document.
Use this feature to configure the entity container and keep the service root clear.
This space-separated value defines a list of schemas not to advertise their objects in the service document.