Dear MySQL users,
MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, version 8.0.20, is a maintenance release of the
MySQL Connector/Node.js 8.0 series.
The X DevAPI enables application developers to write code that combines
the strengths of the relational and document models using a modern,
NoSQL-like syntax that does not assume previous experience writing
traditional SQL.
MySQL Connector/Node.js can be downloaded through npm (see
https://www.npmjs.com/package/@mysql/xdevapi for details) or from
https://dev.mysql.com/downloads/connector/nodejs/.
To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/.
For more information about how the X DevAPI is implemented in MySQL
Connector/Node.js, and its usage, see
http://dev.mysql.com/doc/dev/connector-nodejs/.
Please note that the X DevAPI requires at least MySQL Server version
8.0 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.
Changes in MySQL Connector/Node.js 8.0.20 (2020-04-27, General Availability)
Functionality Added or Changed
* Added two new connection options that evaluate during the
TLS handshake to restrict the negotiated TLS protocols
and ciphers; along with those configured on the server
that can further restrict the final choices. These new
options are tls-versions to define the allowed TLS
protocol versions, and tls-ciphersuites for the allowed
cipher suites. These definitions are comma-separated, and
accepted by the getSession() and getClient() methods.
tls-versions: accepts one or more of the following:
TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3. Other values
generate an error.
tls-ciphersuites: accepts IANA cipher suite names, as
listed on IANA’s TLS Cipher Suites
(https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4)
page. Unsupported or unknown values are ignored.
Example usage demonstrating both plain JavaScript and
JSON configuration object formats:
# tls versions:
mysqlx.getSession(‘mysqlx://root@localhost?tls-versions=[TLSv1,TLSv1.1
,TLSv1.2,TLSv1.3]’)
mysqlx.getSession({ user: ‘root’, tls: { versions: [‘TLSv1’, ‘TLSv1.1’
, ‘TLSv1.2’, ‘TLSv1.3’] } })
# tls ciphersuites
mysqlx.getSession(‘mysqlx://root@localhost?tls-ciphersuites=[DHE-RSA-A
ES128-GCM-SHA256,DHE-RSA-AES256-SHA256]’)
mysqlx.getSession({ user: ‘root’, tls: { ciphersuites: [‘DHE-RSA-AES12
8-GCM-SHA256′, ‘DHE-RSA-AES256-SHA256’] } })
* For X DevAPI applications, when creating a new
connection, if the connection data contains several
target hosts that have no explicit priority assigned, the
behavior of the failover logic now is the same as if all
those target hosts have the same priority. That is, the
next candidate for making a connection is chosen randomly
from the remaining available hosts. If two hosts have the
same priority then one is chosen at random.
On Behalf of MySQL/ORACLE RE Team
Gipson Pulla