ODataDB Change History
Version 5.0, May 7, 2024
Breaking changes:
- ODataDB 5.0 requires ASP.NET Core 8.0.
- ODataDB 5.0 does not support Microsoft Internet Explorer.
- ODataDB 5.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 ODataDB package has new wwwroot files and application settings. We excluded samples to allow using ODataDB in production from the box.
New features:
- New setup.exe wizard allows configuring IIS websites and applications, Windows services, and SSL certificates on Windows.
- ODataDB has a new Windows installer package.
We recommend using this package for Windows. - ODataDB allows using a JWT authentication and configuring login, sign-in and sign-up pages.
- ODataDB 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. - ODataDB 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". - ODataDB detects available SSL certificates and activates HTTPs endpoints on Windows automatically.
- ODataDB redirects to HTTPs endpoints automatically when served both HTTP and HTTPs endpoints.
- ODataDB allows configuring the default port.
WhereByDefault
handlers define columns used as where filters by default.HideByDefault
handlers define column and parameters hidden by default.- ODataDB 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:
- ODataDB 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://odatadb/edit/mssql/ and https://odatadb/mssql/edit/. DoNotAddValidationLists
handlers also disable automatic configuration of parameter value lists.- ODataDB uses the configuration table schema as a default schema for configured objects.
- ODataDB uses MySQL tinyint(1) data type as boolean.
- ODataDB detects types of stored procedure columns by edit objects.
- ODataDB returns the column array for empty results of stored procedures with unknown column sets.
- The
RowNumber
columns are hidden by default. - ODataDB support the
ASPNETCORE_WEBROOT
environment variable to define thewebroot
. - ODataDB allows configuring the ASP.NET application path base using the
ApplicationPathBase
configuration value. - ODataDB allows serving API endpoints when the
wwwroot
folder is specified or does not exist.
Bug fixes:
- MySqlConnectorNet throws _dataCache related exception in Linux.
- ODataDB does not encode line-break characters in metadata results.
Version 4.7, July 12, 2023
Improvements:
- Improved exception handling.
Version 4.6, April 10, 2023
Improvements:
- ODataDB 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 4.5, February 21, 2023
New features:
- ODataDB generates value lists based on MySQL and PostgreSQL ENUM values.
- ODataDB supports the MySQL SET data type.
- ODataDB 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:
- ODataDB uses the MySql.Data.MySqlClient data provider installed on the system.
Prior, ODataDB 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/ - ODataDB dynamically replaces the missing MySql.Data.MySqlClient data provider with the built-in MySqlConnector provider.
- ODataDB has an improved performance of loading MySQL 8 metadata.
Bug fixes:
- ODataDB throws various exceptions when connecting to MySQL 8 using the MySql.Data.MySqlClient.
Version 4.4, January 23, 2023
Improvements:
- ODataDB examples are updated for 2023.
- The .NET and .NET Framework data providers for Snowflake are updated.
- The registration utility is updated.
Version 4.3, December 13, 2022
Improvements:
- ODataDB allows using language-specific edit pages.
- ODataDB includes special edit pages for Simplified Chinese, Traditional Chinese, Japanese, and Korean.
- ODataDB includes a new dark theme.
- SaveToDB Frameworks and samples are released under the MIT license.
Version 4.2, October 5, 2022
Bug fixes:
- ODataDB detects SQLite and MySQL datetime types in SQL code results via the .NET providers as strings.
Version 4.1, August 17, 2022
Breaking changes:
- ODataDB 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. - Properties and parameters have the Edm.Untyped type (added in OData 4.01) when the data type cannot be detected.
- Lists of values based on tables and views are always published as functions.
- 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).
- If an object has a single insert procedure (Merge mode), then the result object is published as a ComplexType but not an EntityType.
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)).
- References to annotation definitions are also excluded from the model if no annotation output is required.
Bug fixes:
- ODataDB disables saving by procedures if the _change handler is set.
- ODataDB does not save JSON form data.
- Redirect to home page does not work when changing the base property of HTML pages.
Version 4.0, July 5, 2022
Changes in End-User License Agreement:
ODataDB 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:
- ODataDB is available in Simplified Chinese, Traditional Chinese, Japanese, and Korean.
- ODataDB 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. - ODataDB includes a completely new Developer Guide.
- ODataDB completely supports SQL codes in all configuration objects.
- ODataDB has a special package that supports .NET Framework 4.7.2.
- ODataDB supports the Microsoft.Data.SqlClient provider.
- ODataDB supports new HTTP endpoints to manage the console application: /v4/$stop, /v4/$show, /v4/$hide.
To enable commands, set StopEnabled to true in the application settings. - ODataDB supports the $reloadMetadata=true HTTP-request 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. - ODataDB supports the $orderby URL parameter.
- ODataDB supports the $binaryAsHex URL parameter and the binaryAsHex parameter in the Prefer header.
- ODataDB supports the $bigNumbersAsString URL parameter and the binaryAsHex parameter in the Prefer header.
- ODataDB supports the $timezone and $timezoneoffset URL parameters and the same parameters in the Prefer header.
- The configuration files contain ODataDB settings in the ODataDB and ODataDBW groups.
- ODataDB supports new configuration options:
MaxPageSize, UppercaseNamesInLowercase, DisableEditPageCache, BinaryAsHex, BigNumbersAsString, TraceSQL, and StopEnabled. - ODataDB supports new connection configuration options:
AllowDatabaseChange, Offline, and Home. - ODataDB adds the following header to disable caching:
Cache-control: no-cache, no-store, must-revalidate. - ODataDB sorts table and view results by default.
It can use primary keys, identity columns, or the complete output column set. - Object metadata includes annotations for configured object handlers.
- 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. - 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 ODataDB .NET platform upgraded to .NET 6.0.
- ODataDB supports SaveToDB Framework 10.
- The built-in JavaScript client has a lot of CSS changes.
- ODataDB converts empty values of non-string data types to NULL.
- ODataDB 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. - ODataDB does not use the IncludeInServiceDocument annotation to avoid crushing clients that use older versions of Microsoft ODataLib.
Bug fixes:
- ODataDB does not detect SQL Data Warehouse objects.
- ODataDB returns an empty content-type header for some text or HTML responses.