What's new in this release?
- Last Updated: May 22, 2025
- 14 minute read
- DataDirect Connectors
- ODBC
- Autonomous Rest Connector 8.0
- Documentation
Changes Since 8.0.1 GA
- Enhancements:
- The Qualify Normalized Names option has been added to the driver. This option allows you to configure whether the names of relational tables normalized from array columns are derived directly from the column name or prefixed with parent object names. For details, see Qualify Normalized Names.
- The driver has been enhanced to support OAuth 2.0 flows that require client credentials be
specified in the body of a POST request. You can configure the driver to
send client credentials in the body of a POST request using the new
0(POST) setting for the OAuth Client Credentials Mode (ClientCredentialsMode) option. See OAuth Client Credentials Mode and OAuth 2.0 authentication for more details. - The driver is now compiled with a Visual Studio 2022 compiler for the Windows platforms. As a result, you must have Microsoft Visual C/C++ runtime version 14.40.33810 or higher on your machine to run the driver.
- The following enhancements have been made to improve how the driver handles assigning
primary keys for tables:
- The logic the driver uses to assign the default primary key has been improved to provide more accurate results.
- A list of viable primary key candidates can be reviewed by querying the
INFORMATION_SCHEMA.SYSTEM_SAMPLING_STATUSsystem table. If you need to designate a primary key other than the default, thePRIMARY_KEY_CANDIDATEScolumn provides you with a quick reference of candidates ranked by the how well they meet the primary key criteria. - The driver has been enhanced to generate a primary key column,
ROWID, if no viable candidates were discovered during sampling.
- The driver has been enhanced to detect JSON roots in endpoint responses during sampling. When mapping the response, the driver maps the embedded objects in the root to a dedicated table. You can modify the detected JSON root for an endpoint using the JSON Root field in the Autonomous REST Composer or the JSON Root (JSONRoot) option. See Sampling REST endpoints and JSON Root for more details.
- The driver has been enhanced to successfully connect and expose a schema
even if some of the endpoints in the Model are unable to be sampled. To
support this new behavior, the following new features have been
introduced:
- The driver now supports configurable failure tolerance when sampling endpoints. By configuring the new Sampling Failure Tolerance (SamplingFailureTolerance) option, you can specify the number of endpoints for which sampling can fail before the driver fails the connection. See Sampling Failure Tolerance for more details.
- The driver has been enhanced to allow you to review the status of endpoints to verify
that they have been successfully sampled. You can query the
statuses of your endpoints in the new
INFORMATION_SCHEMA.SYSTEM_SAMPLING_STATUSsystem table. See Reviewing the status of your endpoints for more details.
- The driver has been enhanced to support OAuth 2.0 flows that require client credentials be specified in only a basic authentication header or only as a URL parameter to request an access token. You can configure how client credentials are sent in a request using the OAuth Client Credentials Mode (ClientCredentialsMode) option. See OAuth Client Credentials Mode and OAuth 2.0 authentication for more details.
- The driver has been enhanced to support specifying default filter values (Where clauses) for SQL queries. You can specify your list of default parameters using the Default Query Options (DefaultQueryOptions) options. See Default Query Options for more details.
- The driver's next page token paging support has been enhanced to use
URLs, query parameter values, and HTTP header values that are returned
in either a response body and header. To configure these mechanisms, the
driver has added support for the new
nextPageRequestHeaderandnextPageResponseHeaderparameters in the Model files. See Paging for more details. - The Configuration Manager has been enhanced to simplify configuring OAuth 2.0
authentication. When specifying one of the new grant flow specific
values for the Authentication Method (AuthenticationMethod) option, the
Configuration Manager exposes only options related to your grant flow.
This functionality assists you in configuring your grant flow by showing
you what information the driver needs to authenticate. Note that the
existing
OAuth2value for the Authentication Method option will continue to be supported. See OAuth 2.0 authentication and Authentication Method for details. - The driver has been enhanced to the support the JWT (JSON Web Token) bearer grant for OAuth 2.0 authentication. You can configure the JWT bearer grant authentication using the new Claims Issuer, Claims Subject, JWT Certificate Alias, JWT Certificate Password, and JWT Certificate Store options. See JWT bearer grant for more details.
- The driver has been enhanced to support the PKCE grant type for OAuth 2.0 authentication. See PKCE grant for more details.
- The driver has been enhanced to support next token paging for APIs that
use a query parameter (for example,
starting_after) to determine what data value to start after when returning the next page of results. See Paging for details. - The driver has been enhanced to support issuing POST requests with an
empty body. You can enable this functionality using the new
#omitWhenEmptyparameter in the REST model file. See POST requests with an empty body for details. - The driver has been enhanced to support fetching access and refresh tokens at connection when OAuth2.0 is enabled. When using the new dynamic authorization code grant, you can initiate an authorization code grant flow by specifying login credentials using the login prompt for your REST service, thereby providing a method to authenticate without fetching access and refresh tokens via the Configuration Manager or third-party application. In addition, the new Enable Login Prompt (EnableLoginPrompt) option has been added to configure this functionality. See Dynamic authorization code grant and Enable Login Prompt for details.
- The driver has been enhanced to support modifying documents in document stores using
pre-defined stored procedures. The prebuilt Model files for the
following data stores have been updated to allow your applications to
fetch, insert, update, and delete documents:
- Amazon S3
- Box
- Dropbox
- Google Drive
- Microsoft Azure Data Lake Storage
- The driver has been enhanced to support user-defined functions and procedures. To be used by the driver, user-defined functions and procedures can be defined in the Model file or by the application. See User-defined functions and procedures for more supported functionality and syntax.
- Update operation functionality has been enhanced to support APIs that require using PATCH
or PUT methods that send only changed fields in the POST body. You can
configure update operations using the
#updateand#sendOnlyUpdatedparameters in the Model file. See Write operations for more information. - The driver has been enhanced to support designating columns as read-only using the model
file with the new
#readOnlyelement. See Read-only columns for more information. - The driver has been enhanced to support flagging columns as nullable using the model file
with the new
#notNullelement. See Nullable columns for more information. - The driver has been enhanced to support write operations, including Insert, Update, and
Delete statements. To enable write operations for an endpoint, you must
configure the new
#insert,#update,#deleteparameters in the Model file. See Write operations and Supported SQL statements and extensions for more information. - The Autonomous REST Composer has been enhanced to allow you to define parameter values in endpoints as variables. This functionality simplifies the sharing of Model files by allowing you to designate user-specific values as variables. Users with whom you share the file can then provide default values for these variables that are replaced across their REST model file, allowing them to quickly customize the endpoints according to their use cases. See Parameter variables for more information.
- The driver has been updated with the new JSON Root (JSONRoot) connection option, which allows you to limit the results mapped to tables to only the specified object when you have multiple objects in an endpoint. This option provides a method to map only the data relevant to your application. See JSON Root for more information.
-
The Autonomous REST Composer has been enhanced to allow you to limit the values displayed in the Authentication Method drop-down field to only those supported by the data source, instead of all those supported by the driver. You can select which fields you want to display by selecting them from the Configure Authentication Method(s) field on the Connection tab. See Generating a Model file with the Autonomous REST Composer for more information.
- Changed behavior:
- The behavior of the OAuth Client Credentials Mode (ClientCredentialsMode) option has been
updated:
- The behavior of the
0setting has been changed so that client credentials are sent only as a basic authentication header. For earlier builds of the driver, client credentials were sent as both a basic authentication header and a URL parameter. - The
0(All) setting has been changed to0(Default) in the Configuration Manager and documentation to reflect the new behavior. - The default setting for the OAuth Client Credentials Mode is
0(Default).
- The behavior of the
- The Autonomous REST Composer tool is now completely packaged in the driver jar file
(
autorest.jar). As a result, the following files associated with launching the Composer are no longer installed with the product:- ArcUILauncher.exe
- ivcurl28.dll (32-bit) and ddcurl28.dll (64-bit)
-
Terminology changes in the product interface and documentation:
-
The input REST files and Recipe files are now collectively referred to as Model files. The functionality of the files has not been modified as a result of this change.
-
The REST Management Tool is now referred to as the Autonomous REST Composer. The functionality of the tool has not been modified as a result of this change.
-
- The behavior of the OAuth Client Credentials Mode (ClientCredentialsMode) option has been
updated:
Changes for 8.0.1 GA
- Enhancements:
- The driver has been enhanced to support calculating Base64 encoding for user name and password values. When using custom authentication, you can enable Base64 encoding with the Model file. The driver then encodes the values of the user name and password properties when authenticating to your services. For details, see Custom authentication requests.
- On Windows, the driver now includes the Configuration Manager for
quick configuration and testing of your driver. This Configuration
Manager allows you to:
- Configure data sources
- Generate and edit connection strings
- Test connect data sources and connection strings
- Execute SQL commands for testing
- Fetch OAuth tokens and configure OAuth
- Access connection option descriptions and the full product documentation
-
The DataDirect ODBC Configuration Manager has been enhanced to support the generation of Model files. This provides you with a method to quickly generate and edit a REST input file. See Generating a Model file with the Autonomous REST Composer for details.
- The driver now includes a library of Progress developed Model files to connect to publicly accessible REST services. The prebuilt Model files define the requests and pagination settings for a data source, eliminating the need to create your own Model file. After selecting your data source from the Configuration Manager, you only need to provide your authentication credentials to begin accessing your data. See Getting started using prebuilt Model files (Windows) for details.
- The Configuration Manager has been enhanced with role-specific work
flows:
- The developer view of the Configuration Manager, Autonomous REST Composer, provides access to the new prebuilt Models library and configuration properties. In addition, the Hub window has been added that includes access to training videos, documentation, and technical support. The developer's view can be launched through the new desktop and Start menu icons.
- The user's view provides a simplified interface that allows you to configure and test your connection. You can launch the user's view through the ODBC Administrator.
- The driver now supports responses returned in XML and CSV formats in addition to JSON. When sampling an endpoint, the driver detects the format of the response before mapping the objects to the relational view of the data. If multiple formats are supported by the service, the driver defaults to using JSON; however, you can also configure the driver to use your preferred format. See Mapping objects to tables for details.
- The driver has been enhanced to support passing custom HTTP headers when
using OAuth 2.0 authentication. When OAuth 2.0 is enabled (
AuthenticationMethod=OAuth2), you can now pass the HTTP header name with the Authentication Header (AuthHeader) option and the ID value with the Security Token (SecurityToken) option. This functionality can be used for passing the ID string for tenant ID authentication. See OAuth 2.0 authentication for details. - The driver has been enhanced to support AWS (Amazon Web Services)
credentials authentication. When AWS credentials authentication is
enabled (
AuthenticationMethod=43), you can configure AWS credentials using the new Access Key (AccessKey), Region (Region), and Secret Key (SecretKey) options. See AWS credentials authentication for details. - The driver has been enhanced to support issuing POST requests that use custom parameters. This allows for filtering in scenarios where complex parameter syntax is employed, such as using complicated JSON data or empty arrays. See POST requests for details.
- The driver has been enhanced to support issuing GET requests that use custom parameters, such as those supported by JQL or SOQL, when filtering results. Using the custom parameters supported by your service allows queries to be processed before returning results to driver, thereby resulting in more efficient processing. See Requests with custom HTTP headers for details.
- The driver has been enhanced to support bearer token and digest authentication. See Bearer token authentication and Digest authentication for more details.
-
The new Health Check URI (
HealthURI) connection option provides a method to test connectivity for authentication methods, such as Basic, Digest, URL Parameter-based, or HTTP header-based, that do not perform an explicit action upon connection. See Health Check URI for details. - The driver has been enhanced with the new Array Normalization Threshold (ArrayNormalizationThreshold) connection option. Array Normalization Threshold allows you to specify the length of arrays (in elements) at which the driver begins to normalize arrays to child tables when generating a flattened view. This provides you with a method to control the size and focus of your parent table when encountering large arrays or nested arrays. See Array Normalization Threshold for details.
- A Password Encryption Tool, called ddencpwd, is now included with the product package. It encrypts passwords for secure handling in connection strings and odbc.ini files. At connection, the driver decrypts these passwords and passes them to the data source as required. See Password Encryption Tool (UNIX/Linux only) for details.
-
The driver has been enhanced with the new User Agent String (UserAgent) connection option. User Agent String allows you to specify the value of the User-Agent header to be used in HTTP requests. This provides a method to override the default value of the User-Agent header when required by a service. See User Agent String for details.
- The driver has been enhanced to support connecting through a proxy
server. You can configure this feature using the new Proxy Host (
ProxyHost), Proxy Port (ProxyPort), Proxy User (ProxyUser), and Proxy Password (ProxyPassword) connection options. See Connection option descriptions for details. - The new Encryption Method (
EncryptionMethod) connection option allows you to determine when TLS/SSL data encryption is enabled. See Encryption Method for details. - The new Port Number (
PortNumber) connection option allows you to specify the port number of the server listener the TCP port of the server that is listening for REST API requests. See Port Number for details. - The new Refresh Dirty Cache (RefreshDirtyCache) connection option allows you to determine whether the driver refreshes a dirty cache on the next fetch operation from the cache. See Refresh Dirty Cache for details.
- The new Refresh Schema (RefreshSchema) connection option allows you to determine whether the driver automatically refreshes the relational map of when connecting. See Refresh Schema for details.
- The new Authorization URI (
AuthURI) connection option allows you to specify the endpoint used for obtaining an authorization code from a third-party authorization service for OAuth 2.0 implementations. See Authorization URI for details. - The new Statement Call Limit (
StmtCallLimit) and Statement Call Limit Behavior (StmtCallLimitBehavior) connection options allow you to limit the number of calls made to your web service. See Statement Call Limit and Statement Call Limit Behavior for details. - The new Web Service Fetch Size (
WSFetchSize) allows you to specify the number of rows of data the driver attempts to fetch for each JDBC call. This provides you with a method to tune the driver for your ideal balance throughput and response time. See Web Service Fetch Size for details. - The new Web Service Pool Size (
WSPoolSize) specifies the maximum number of sessions the driver uses. This allows the driver to have multiple web service requests active when multiple JDBC connections are open, thereby improving throughput and performance. See Web Service Pool Size for details. - The new Web Service Retry Count (
WSRetryCount) connection options specifies the number of times the driver retries a timed-out Select request. - The new Web Service Timeout (
WSTimeout) connection option specifies the time, in seconds, that the driver waits for a response to a web service request. See Web Service Timeout for details. - The driver has been enhanced to support the following new paging parameters in the Model file: fieldListParameter, hasMoreElement, pageSizeElement, totalPagesElement, and totalRowsElement. See Paging for details.
- The driver has been enhanced to allow you to define custom authentication requests, including the new Custom Auth Params (CustomAuthParams) connection option. If your service does not support one of the standard authentication methods supported by the driver, you can modify the Model file to define token-based authentication flows. See Paging for details.
- The driver has been enhanced to allow you to customize how HTTP response status codes are processed by the driver. By configuring the Model file, you can define error responses for codes that are returned by the service, including driver actions and error messages. See HTTP response code processing for details.
- The driver has been enhanced to support OAuth 2.0 authentication. See OAuth 2.0 authentication for details.
- The driver has been enhanced to support requests for endpoints that use custom HTTP-headers. See Requests with custom HTTP headers for details.
- Changed behavior:
- The attribute for User connection option has changed from
LogonIDtoUser. - The behaviors assigned to valid values for the Create Map (
CreateMap) have been modified. See Create Map for details. - The supported valid values for the Authentication Method (AuthenticationMethod) option have changed from enum to numeric types. If you are using a connection string or odbc.ini file for an earlier version of the driver, you will need to update the values specified for these options. See Authentication Method for details.
- The Application Using Threads (
ApplicationUsingThreads) connection option is no longer supported. The driver now works with single-threaded and multi-threaded applications for all connections. - The Result Memory Size
(
ResultMemorySize) connection option is no longer supported. The size of an intermediate result set is now determined by a percentage of the max Java heap size. - The IANAAppCodePage (
IANAAppCodePage) connection option is longer supported. IANAAppCodePage specified Internet Assigned Numbers Authority (IANA) value if your application was not Unicode enabled or if your database character set was not Unicode. - The Login Timeout (
LoginTimeout) is no longer supported. As a result, connection requests do not timeout, but the driver responds to theSQL_ATTR_LOGIN_TIMEOUTattribute. - The Report Codepage Conversion Errors
(
ReportCodepageConversionErrors) is no longer supported. As a result, the driver behavior has changed to substitute 0x1A for each character that cannot be converted and does not return a warning or error.
- The attribute for User connection option has changed from
Highlights of the 8.0.0 Release
- The driver supports SQL read-only access to REST API endpoints that return JSON payloads. See Supported SQL statements and extensions for details.
- The driver supports all ODBC Core and Level 1 functions and some Level 1 and Level 2 features. See Driver specifications for details.
- The driver supports standard JSON data types and additional data types through data type inference. See Data types for details.
- The driver supports using internal memory or a configurable Model file to define REST responses and relational mapping. See Configuring the relational map for details.
- The driver heuristically maps data types, eliminating the need to define native data types in most scenarios. See Data types for more information about data type mapping.
- The driver supports basic, HTTP-header based, URL-Parameter based and no authentication. See Authentication for details.
- The driver supports the handling of large result sets with configurable paging and the Fetch Size connection option. See Configuring the relational map for more information on configuring paging.
- The driver includes a new Tableau data source file (Windows only) that provides improved functionality when accessing your data with Tableau. See Tableau (Windows only) for more information.