Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 09b4709

Browse files
Prepare for 6.10 release
1 parent a2a4cda commit 09b4709

File tree

10 files changed

+86
-19
lines changed

10 files changed

+86
-19
lines changed

‎doc/src/release_notes.rst‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ that impact both Thin and Thick modes ('Common'), the changes that
1313
affect Thin mode (the default runtime behavior of node-oracledb from 6.0.0),
1414
and the changes that affect the optional :ref:`Thick Mode <enablingthick>`.
1515

16-
node-oracledb `v6.10.0 <https://github.com/oracle/node-oracledb/compare/v6.9.0...v6.10.0>`__ ()
17-
---------------------------------------------------------------------------------------------------------
16+
node-oracledb `v6.10.0 <https://github.com/oracle/node-oracledb/compare/v6.9.0...v6.10.0>`__ (16 Oct 2025)
17+
-----------------------------------------------------------------------------------------------------------
1818

1919
Common Changes
2020
++++++++++++++

‎doc/src/user_guide/aq.rst‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ Only node-oracledb :ref:`Thick mode <enablingthick>` supports the use of:
8181
- Visibility constant :data:`oracledb.AQ_VISIBILITY_IMMEDIATE` in
8282
:meth:`aqQueue.enqMany()` and :meth:`aqQueue.deqMany()` methods
8383

84+
The ``payloadType`` attribute in :meth:`connection.getQueue()` must be
85+
specified when the payload is :ref:`JSON <aqjsonexample>` or
86+
:ref:`Named Oracle Objects <aqobjexample>`. This attribute need not be
87+
specified for :ref:`RAW <aqrawexample>` payload.
88+
8489
Transactional Event Queues do not support the ``transformation``
8590
attribute of :attr:`aqQueue.enqOptions` and :attr:`aqQueue.deqOptions`, or
8691
:ref:`Recipient Lists <aqrecipientlists>`.

‎doc/src/user_guide/authentication_methods.rst‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,41 @@ connections exceeds ``poolMin`` and connections are idle for more than
235235
the :attr:`oracledb.poolTimeout` seconds, then the number of
236236
open connections does not fall below ``poolMin``.
237237

238+
**In node-oracledb Thin mode**
239+
240+
In node-oracledb Thin mode, you can use external authentication combined with
241+
proxy authentication when using a homogeneous pool. To use this, set the
242+
``externalAuth`` property to *true* and define the proxy user in the ``user``
243+
property of the :meth:`oracledb.createPool()`.
244+
245+
In the following example, ``ssl_user`` (authenticated externally through SSL)
246+
is allowed to connect as a proxy for ``password_user``:
247+
248+
.. code-block:: sql
249+
250+
CREATE USER password_user IDENTIFIED BY <password>;
251+
GRANT CONNECT TO password_user;
252+
253+
CREATE USER ssl_user IDENTIFIED EXTERNALLY AS 'CN=ssl_user';
254+
GRANT CONNECT TO ssl_user;
255+
256+
ALTER USER password_user GRANT CONNECT THROUGH ssl_user;
257+
258+
You can then connect to Oracle Database using:
259+
260+
.. code-block:: javascript
261+
262+
const proxyUserConnectionAttributes = {
263+
walletLocation: "/opt/OracleCloud",
264+
connectString: "tcps://localhost:2484/FREEPDB1",
265+
walletPassword: wp,
266+
externalAuth: true,
267+
user: "[PASSWORD_USER]",
268+
};
269+
await oracledb.createPool(proxyUserConnectionAttributes);
270+
const connection = await pool.getConnection();
271+
await connection.close();
272+
238273
.. _tlsextauth:
239274

240275
External Authentication Using TLS

‎examples/aqmulti.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ if (process.env.NODE_ORACLEDB_DRIVER_MODE === 'thick') {
6363
oracledb.initOracleClient(clientOpts); // enable node-oracledb Thick mode
6464
}
6565

66+
console.log(oracledb.thin ? 'Running in thin mode' : 'Running in thick mode');
67+
6668
const queueName = "DEMO_RAW_QUEUE";
6769
const RAW_TABLE = "NODB_RAW_QUEUE_TAB";
6870
const AQ_USER = "NODB_SCHEMA_AQTEST1";

‎examples/aqobject.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ if (process.env.NODE_ORACLEDB_DRIVER_MODE === 'thick') {
6363
oracledb.initOracleClient(clientOpts); // enable node-oracledb Thick mode
6464
}
6565

66+
console.log(oracledb.thin ? 'Running in thin mode' : 'Running in thick mode');
67+
6668
const queueName = "ADDR_QUEUE";
6769
const ADDR_TABLE = "ADDR_QUEUE_TAB";
6870
const DB_OBJECT = "USER_ADDRESS_TYPE";

‎examples/aqoptions.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ if (process.env.NODE_ORACLEDB_DRIVER_MODE === 'thick') {
6363
oracledb.initOracleClient(clientOpts); // enable node-oracledb Thick mode
6464
}
6565

66+
console.log(oracledb.thin ? 'Running in thin mode' : 'Running in thick mode');
67+
6668
const queueName = "DEMO_RAW_QUEUE";
6769
const RAW_TABLE = "NODB_RAW_QUEUE_TAB";
6870
const AQ_USER = "NODB_SCHEMA_AQTEST1";

‎examples/aqraw.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ if (process.env.NODE_ORACLEDB_DRIVER_MODE === 'thick') {
6363
oracledb.initOracleClient(clientOpts); // enable node-oracledb Thick mode
6464
}
6565

66+
console.log(oracledb.thin ? 'Running in thin mode' : 'Running in thick mode');
67+
6668
const queueName = "DEMO_RAW_QUEUE";
6769
const RAW_TABLE = "NODB_RAW_QUEUE_TAB";
6870
const AQ_USER = "NODB_SCHEMA_AQTEST1";

‎test/jsonDualityViews2.js‎

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ describe('273. jsonDualityView2.js', function() {
7575
const pwd = testsUtil.generateRandomPassword();
7676

7777
dbaConn = await oracledb.getConnection(dbaCredential);
78+
7879
await dbaConn.execute(`CREATE USER jsonDv2 IDENTIFIED BY ${pwd}`);
7980
await dbaConn.execute(`GRANT CREATE SESSION, RESOURCE, CONNECT,
8081
UNLIMITED TABLESPACE TO jsonDv2`);
@@ -87,9 +88,12 @@ describe('273. jsonDualityView2.js', function() {
8788
after(async function() {
8889
if (!isRunnable) return;
8990

90-
await connection.close();
91-
await dbaConn.execute(`DROP USER jsonDv2 CASCADE`);
92-
await dbaConn.close();
91+
if (connection) await connection.close();
92+
93+
if (dbaConn) {
94+
await dbaConn.execute(`DROP USER jsonDv2 CASCADE`);
95+
await dbaConn.close();
96+
}
9397
});
9498

9599
it('273.1 without base table being available (use force option at view creation)', async function() {
@@ -339,6 +343,7 @@ describe('273. jsonDualityView2.js', function() {
339343
if (dbConfig.test.drcp) {
340344
this.skip();
341345
}
346+
342347
await dbaConn.execute(createUser1);
343348
await dbaConn.execute(grantPriv1);
344349
await dbaConn.execute(createUser2);
@@ -358,10 +363,15 @@ describe('273. jsonDualityView2.js', function() {
358363
if (dbConfig.test.drcp) {
359364
return;
360365
}
361-
await conn2.close();
362-
await conn1.close();
363-
await dbaConn.execute(`DROP USER njs_test1 CASCADE`);
364-
await dbaConn.execute(`DROP USER njs_test2 CASCADE`);
366+
367+
if (conn2) await conn2.close();
368+
369+
if (conn1) await conn1.close();
370+
371+
if (dbaConn) {
372+
await dbaConn.execute(`DROP USER njs_test1 CASCADE`);
373+
await dbaConn.execute(`DROP USER njs_test2 CASCADE`);
374+
}
365375
});
366376

367377
it('273.9.1 Base table in one schema and View in another schema', async function() {
@@ -508,6 +518,7 @@ describe('273. jsonDualityView2.js', function() {
508518
if (dbConfig.test.drcp) {
509519
this.skip();
510520
}
521+
511522
await dbaConn.execute(`CREATE USER njs_testuser1 IDENTIFIED BY ${pwd}`);
512523
await dbaConn.execute(`GRANT CREATE SESSION, RESOURCE, CREATE TABLE,
513524
UNLIMITED TABLESPACE TO njs_testuser1`);
@@ -518,7 +529,10 @@ describe('273. jsonDualityView2.js', function() {
518529
if (dbConfig.test.drcp) {
519530
return;
520531
}
521-
await dbaConn.execute(`DROP USER njs_testuser1 CASCADE`);
532+
533+
if (dbaConn) {
534+
await dbaConn.execute(`DROP USER njs_testuser1 CASCADE`);
535+
}
522536
});
523537

524538
it('273.10.1 redaction enabled on a base table', async function() {

‎test/jsonDualityViews3.js‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ describe('274 jsonDualityView3.js', function() {
6969
};
7070

7171
dbaConn = await oracledb.getConnection(dbaCredential);
72+
7273
await dbaConn.execute(
7374
`CREATE USER njs_jsonDv3 IDENTIFIED BY ${pwd}`
7475
);
@@ -85,9 +86,12 @@ describe('274 jsonDualityView3.js', function() {
8586
after(async function() {
8687
if (!isRunnable || dbConfig.test.isCmanTdm) return;
8788

88-
await connection.close();
89-
await dbaConn.execute(`DROP USER njs_jsonDv3 CASCADE`);
90-
await dbaConn.close();
89+
if (connection) await connection.close();
90+
91+
if (dbaConn) {
92+
await dbaConn.execute(`DROP USER njs_jsonDv3 CASCADE`);
93+
await dbaConn.close();
94+
}
9195
});
9296

9397
it('274.1 Define Columns of View with WITH READ WRITE or WITH READ ONLY annotations', async function() {

‎test/jsonDualityViews4.js‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,14 @@ describe('275. jsonDualityView4.js', function() {
110110
after(async function() {
111111
if (!isRunnable || dbConfig.test.isCmanTdm) return;
112112

113-
awaittestsUtil.dropTable(connection,'student_diff-63adab4866df6ee7311b2ff03f21999327f92264b014c8c09e5496523cf0630f-114-112-0" data-selected="false" role="gridcell" tabindex="-1">114
-
await testsUtil.dropTable(connection, 'student');
115-
await testsUtil.dropTable(connection, 'class');
116-
117-
await connection.close();
118-
awaitdbaConn.execute(`DROP USER njs_jsonDv4 CASCADE`);
113+
if(connection){
114+
await testsUtil.dropTable(connection, 'student_class');
115+
await testsUtil.dropTable(connection, 'student');
116+
awaittestsUtil.dropTable(connection,'class');
117+
await connection.close();
118+
}
119119

120+
if (dbaConn) await dbaConn.execute(`DROP USER njs_jsonDv4 CASCADE`);
120121
await dbaConn.close();
121122
});
122123

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /