DBGate Change History
Version 3.0, May 7, 2024
Breaking changes:
- DBGate 3.0 requires ASP.NET Core 8.0.
- DBGate 3.0 does not support Microsoft Internet Explorer.
- DBGate 3.0 does not include data providers for Oracle Database, NuoDB, and SQLite (you may install them yourself).
- The
EditRoots
key became a section and includes edit roots with the root pages. TheEditPages
section removed. - The JavaScript client requires browser support of JavaScript modules.
- The DBGate package has new wwwroot files and application settings. We excluded samples to allow using DBGate in production from the box.
New features:
- New setup.exe wizard allows configuring IIS websites and applications, Windows services, and SSL certificates on Windows.
- DBGate has a new Windows installer package.
We recommend using this package for Windows. - DBGate allows using a JWT authentication and configuring login, sign-in and sign-up pages.
- DBGate allows authenticating users using stored procedures and supports user roles.
For example, you may allow new users to sign-up and then sign-in as buyers or sellers and use roles like buyer and seller to suggest different features. - DBGate replaces the
<base href="/" />
tag for IIS applications automatically.
So, you may use the same wwwroot files for IIS websites and applications, Windows services, and console applications. - Developers can change API objects names via the
ApiNameReplacements
section of the connection configuration.
For example, you may change a generated name like "view_money_transactions" to "transactions". - DBGate detects available SSL certificates and activates HTTPs endpoints on Windows automatically.
- DBGate redirects to HTTPs endpoints automatically when served both HTTP and HTTPs endpoints.
- DBGate allows configuring the default port.
WhereByDefault
handlers define columns used as where filters by default.HideByDefault
handlers define column and parameters hidden by default.- DBGate allows changing server, databases, and ports in a connection (if enabled).
For example, you may use a URL like like/edit/mssql:db.savetodb.com,1433,AzureDemo100/
to connect to theAzureDemo100
database at thedb.savetodb.com
server on port 1433. - The index page shows available connections when the connection database is
master
,mysql
, orpostgres
. - The JavaScript client supports the dark theme.
- The JavaScript client shows the left sidebar that allows connecting to any object in one click.
- The JavaScript client allows filtering tables.
- The JavaScript client allows using table views (use the SaveToDB add-in to create and save views).
- The JavaScript client shows the icon to read the object description.
Improvements:
- DBGate supports the connection name as the first segment and the API root as the second segment of endpoints.
So, you may use endpoints like /<root>
/<connection>
/<query>
and /<connection>
/<root>
/<query>
.
For example: https://dbgate/edit/mssql/ and https://dbgate/mssql/edit/. DoNotAddValidationLists
handlers also disable automatic configuration of parameter value lists.- DBGate uses the configuration table schema as a default schema for configured objects.
- DBGate uses MySQL tinyint(1) data type as boolean.
- DBGate detects types of stored procedure columns by edit objects.
- DBGate returns the column array for empty results of stored procedures with unknown column sets.
- The
RowNumber
columns are hidden by default. - DBGate support the
ASPNETCORE_WEBROOT
environment variable to define thewebroot
. - DBGate allows configuring the ASP.NET application path base using the
ApplicationPathBase
configuration value. - DBGate allows serving API endpoints when the
wwwroot
folder is specified or does not exist.
Bug fixes:
- MySqlConnectorNet throws _dataCache related exception in Linux.
- DBGate does not encode line-break characters in metadata results.
Version 2.7, July 12, 2023
Improvements:
- Improved exception handling.
Version 2.6, April 10, 2023
Improvements:
- DBGate allows using MySQL objects with empty schemas. In this case, it uses the schema of the active connection.
- Improved performance of loading SQL Server metadata.
Version 2.5, February 21, 2023
New features:
- DBGate generates value lists based on MySQL and PostgreSQL ENUM values.
- DBGate supports the MySQL SET data type.
- DBGate converts MySQL binary(16) and varbinary(16) data to GUID format when COLUMN_DEFAULT contains uuid_to_bin(uuid()), uuid_to_bin(uuid(),0) or uuid_to_bin(uuid(),1) functions.
Improvements:
- DBGate uses the MySql.Data.MySqlClient data provider installed on the system.
Prior, DBGate used the provider shipped with the application.
This solution allows installing and using the newest version of the provider:
https://dev.mysql.com/downloads/connector/net/ - DBGate dynamically replaces the missing MySql.Data.MySqlClient data provider with the built-in MySqlConnector provider.
- DBGate has an improved performance of loading MySQL 8 metadata.
Bug fixes:
- DBGate throws various exceptions when connecting to MySQL 8 using the MySql.Data.MySqlClient.
Version 2.4, January 23, 2023
Improvements:
- DBGate examples are updated for 2023.
- The .NET and .NET Framework data providers for Snowflake are updated.
- The registration utility is updated.
Version 2.3, December 13, 2022
Improvements:
- DBGate allows using language-specific edit pages.
- DBGate includes special edit pages for Simplified Chinese, Traditional Chinese, Japanese, and Korean.
- DBGate includes a new dark theme.
- SaveToDB Frameworks and samples are released under the MIT license.
Version 2.2, October 5, 2022
Bug fixes:
- DBGate detects SQLite and MySQL datetime types in SQL code results via the .NET providers as strings.
Version 2.1, August 17, 2022
Breaking changes:
- DBGate does not activate saving changes for views, procedures, and SQL code objects based on joining multiple tables.
To save changes of such objects, you have to set the target table manually in the xls.objects table. - Fields of views and procedures based on several tables are marked as calculated.
- Context parameters for client applications are included in object properties (for example, rownum).
Improvements:
- Translations for SQLite and SQL Server Compact with empty schemas and object names are added to the Default schema.
- Automatic detecting fields of lists of values is improved (reduced priority of Guid and Char(36)).
- $orderby= returns data without default sorting.
Bug fixes:
- DBGate disables saving by procedures if the _change handler is set.
- DBGate does not save JSON form data.
- Redirect to home page does not work when changing the base property of HTML pages.
Version 2.0, July 5, 2022
Changes in End-User License Agreement:
DBGate includes an updated End-User License Agreement.
The most important change:
"Consent to Be Included in the Client List: By purchasing the software on behalf of your company, you implicitly consent to the listing of your company name as our customer. You can revoke this consent at any time by submitting a request."
New features:
- DBGate is available in Simplified Chinese, Traditional Chinese, Japanese, and Korean.
- DBGate supports language codes up to 10 characters.
For example, you can use zh-cn, zh-hans, and zh-hans-cn. zh-hans and zh-hant are preferrable in Chinese. - DBGate includes a completely new Developer Guide.
- DBGate completely supports SQL codes in all configuration objects.
- DBGate has a special package that supports .NET Framework 4.7.2.
- DBGate supports the Microsoft.Data.SqlClient provider.
- DBGate supports the OData-compatible batch requests using the POST /$batch requests.
- DBGate supports new HTTP endpoints to manage the console application: /api/$stop, /api/$show, /api/$hide.
To enable commands, set StopEnabled to true in the application settings. - DBGate supports the $reloadMetadata=true URL parameter to reload database metadata.
Users can press the Ctrl button and click the Reload button to reload the metadata in the built-in JavaScript client. - DBGate supports the $distinct=true URL parameter to return the results using SELECT DISTINCT.
- DBGate supports the $orderby URL parameter.
- DBGate supports the $groupby URL parameter.
- DBGate supports the $iscount=true URL parameter to return the SELECT COUNT(*) result.
- DBGate supports the $binaryAsHex URL parameter and the binaryAsHex parameter in the Prefer header.
- DBGate supports the $bigNumbersAsString URL parameter and the binaryAsHex parameter in the Prefer header.
- DBGate supports the $dateTimeAsDateTimeOffset URL parameter and the same parameter in the Prefer header.
- DBGate supports the $timezone and $timezoneoffset URL parameters and the same parameters in the Prefer header.
- The configuration files contain DBGate settings in the DBGate and DBGateW groups.
- DBGate supports new configuration options:
MaxPageSize, UppercaseNamesInLowercase, DisableEditPageCache, BinaryAsHex, BigNumbersAsString, FunctionPrefixes, FunctionSuffixes, TraceSQL, and StopEnabled. - DBGate supports new connection configuration options:
AllowDatabaseChange, Offline, and Home. - DBGate supports the /schema/name/{id} HTTP endpoints to select a single record by the primary key value.
- DBGate adds the "dbgate-version: 2.0" header.
- DBGate adds the following header to disable caching:
Cache-control: no-cache, no-store, must-revalidate. - DBGate sorts table and view results by default.
It can use primary keys, identity columns, or the complete output column set. - Object metadata includes event handlers.
- Parameter metadata includes the CONTEXT_TYPE property with the following values: Language, Top, Skip.
- Developers can overwrite the DEFAULT_VALUE value in the parameter metadata using the DefaultValue handlers.
- DBGate supports paging and $top and $skip URL parameters.
It supports paging for tables and views automatically.
Developers can implement paging for stored procedures programmatically via the following pairs of parameters:
top and skip, limit and offset, $top and $skip, or $limit and $offset.
Use the MaxPageSize settings to define the maximum page size. - The built-in JavaScript client supports fixed columns (split/unsplit).
- The built-in JavaScript client allows executing handlers of the Actions and ContextMenu types.
- The built-in JavaScript client supports JSON parameters of the edit procedures.
- The built-in JavaScript client supports bulk update procedures.
Improvements:
- The DBGate .NET platform upgraded to .NET 6.0.
- DBGate supports SaveToDB Framework 10.
- The built-in JavaScript client has a lot of CSS changes.
- DBGate converts empty values of non-string data types to NULL.
- DBGate fills the DATA_TYPE properties with System.DbType values instead of native SQL data types.
- DBGate does not add @-fields of the SQL pseudo-code to SELECT output fields.
For example, it translatesid, state, @country_id
toSELECT id, state FROM ... WHERE country_id = @country_id
. - Stored procedure and SQL code parameters can use XML-encoded characters to get values from underlying columns.
For example, the @company_x0020_name parameter gets a value of the "company name" field.
Bug fixes:
- DBGate does not detect SQL Data Warehouse objects.
- DBGate returns an empty content-type header for some text or HTML responses.