oracledb 6.10.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +1 -1
- package/NOTICE.txt +1 -1
- package/README.md +9 -9
- package/build/Release/oracledb-7.0.0-darwin-arm64.node +0 -0
- package/build/Release/oracledb-7.0.0-darwin-arm64.node-buildinfo.txt +1 -0
- package/build/Release/oracledb-7.0.0-js-buildinfo.txt +1 -0
- package/build/Release/oracledb-7.0.0-linux-arm64.node +0 -0
- package/build/Release/oracledb-7.0.0-linux-arm64.node-buildinfo.txt +1 -0
- package/build/Release/oracledb-7.0.0-linux-x64.node +0 -0
- package/build/Release/oracledb-7.0.0-linux-x64.node-buildinfo.txt +1 -0
- package/build/Release/oracledb-7.0.0-win32-x64.node +0 -0
- package/build/Release/oracledb-7.0.0-win32-x64.node-buildinfo.txt +1 -0
- package/eslint.config.js +39 -0
- package/lib/connection.js +412 -37
- package/lib/endUserSecurityContext.js +176 -0
- package/lib/errors.js +86 -5
- package/lib/impl/connection.js +76 -2
- package/lib/impl/datahandlers/buffer.js +19 -5
- package/lib/impl/datahandlers/vector.js +25 -5
- package/lib/impl/lob.js +9 -0
- package/lib/impl/parserHelpers.js +443 -0
- package/lib/impl/resultset.js +1 -1
- package/lib/lob.js +27 -14
- package/lib/obfuscation.js +97 -0
- package/lib/oracledb.js +148 -43
- package/lib/parser.js +204 -0
- package/lib/pipeline.js +113 -0
- package/lib/pool.js +16 -1
- package/lib/resultset.js +42 -21
- package/lib/settings.js +1 -0
- package/lib/thin/connection.js +467 -53
- package/lib/thin/dbObject.js +7 -1
- package/lib/thin/lob.js +20 -1
- package/lib/thin/pool.js +42 -62
- package/lib/thin/protocol/capabilities.js +18 -3
- package/lib/thin/protocol/constants.js +82 -2
- package/lib/thin/protocol/encryptDecrypt.js +43 -8
- package/lib/thin/protocol/messages/auth.js +6 -1
- package/lib/thin/protocol/messages/base.js +245 -4
- package/lib/thin/protocol/messages/dataType.js +8 -3
- package/lib/thin/protocol/messages/directPathLoadStream.js +377 -0
- package/lib/thin/protocol/messages/directPathOp.js +65 -0
- package/lib/thin/protocol/messages/directPathPrepare.js +158 -0
- package/lib/thin/protocol/messages/endPipeline.js +56 -0
- package/lib/thin/protocol/messages/execute.js +9 -7
- package/lib/thin/protocol/messages/index.js +9 -1
- package/lib/thin/protocol/messages/protocol.js +2 -2
- package/lib/thin/protocol/messages/withData.js +8 -140
- package/lib/thin/protocol/packet.js +115 -24
- package/lib/thin/protocol/protocol.js +110 -25
- package/lib/thin/protocol/utils.js +1 -26
- package/lib/thin/resultSet.js +13 -19
- package/lib/thin/sqlnet/ezConnectResolver.js +2 -2
- package/lib/thin/sqlnet/networkSession.js +62 -40
- package/lib/thin/sqlnet/ntTcp.js +24 -0
- package/lib/thin/sqlnet/nvStrToNvPair.js +50 -25
- package/lib/thin/sqlnet/packet.js +25 -4
- package/lib/thin/sqlnet/paramParser.js +10 -7
- package/lib/thin/statementCache.js +2 -4
- package/lib/traceHandler.js +59 -2
- package/lib/transformer.js +8 -3
- package/lib/types.js +35 -21
- package/lib/util.js +6 -6
- package/lib/version.js +3 -3
- package/package/install.js +5 -5
- package/package/prunebinaries.js +1 -1
- package/package.json +1 -1
- package/plugins/configProviders/awsCommon.js +125 -0
- package/plugins/configProviders/awss3/index.js +138 -0
- package/plugins/configProviders/awssecretsmanager/index.js +147 -0
- package/plugins/configProviders/azure/index.js +4 -5
- package/plugins/token/extensionAzure/index.js +0 -1
- package/plugins/token/extensionOci/index.js +0 -1
- package/build/Release/oracledb-6.10.0-darwin-arm64.node +0 -0
- package/build/Release/oracledb-6.10.0-darwin-arm64.node-buildinfo.txt +0 -1
- package/build/Release/oracledb-6.10.0-darwin-x64.node +0 -0
- package/build/Release/oracledb-6.10.0-darwin-x64.node-buildinfo.txt +0 -1
- package/build/Release/oracledb-6.10.0-js-buildinfo.txt +0 -1
- package/build/Release/oracledb-6.10.0-linux-arm64.node +0 -0
- package/build/Release/oracledb-6.10.0-linux-arm64.node-buildinfo.txt +0 -1
- package/build/Release/oracledb-6.10.0-linux-x64.node +0 -0
- package/build/Release/oracledb-6.10.0-linux-x64.node-buildinfo.txt +0 -1
- package/build/Release/oracledb-6.10.0-win32-x64.node +0 -0
- package/build/Release/oracledb-6.10.0-win32-x64.node-buildinfo.txt +0 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// Copyright (c) 2026, Oracle and/or its affiliates.
|
|
2
|
+
//-----------------------------------------------------------------------------
|
|
3
|
+
//
|
|
4
|
+
// This software is dual-licensed to you under the Universal Permissive License
|
|
5
|
+
// (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License
|
|
6
|
+
// 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose
|
|
7
|
+
// either license.
|
|
8
|
+
//
|
|
9
|
+
// If you elect to accept the software under the Apache License, Version 2.0,
|
|
10
|
+
// the following applies:
|
|
11
|
+
//
|
|
12
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
// you may not use this file except in compliance with the License.
|
|
14
|
+
// You may obtain a copy of the License at
|
|
15
|
+
//
|
|
16
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
//
|
|
18
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
// See the License for the specific language governing permissions and
|
|
22
|
+
// limitations under the License.
|
|
23
|
+
//
|
|
24
|
+
//-----------------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
"use strict";
|
|
27
|
+
|
|
28
|
+
const util = require("node:util");
|
|
29
|
+
const { base } = require("../base.js");
|
|
30
|
+
const {
|
|
31
|
+
createAwsCredential,
|
|
32
|
+
initAwsCommon,
|
|
33
|
+
initAwsRequestHandler,
|
|
34
|
+
resolveRegion
|
|
35
|
+
} = require("../awsCommon.js");
|
|
36
|
+
const oracledb = require("oracledb");
|
|
37
|
+
|
|
38
|
+
let SecretsManagerClient, GetSecretValueCommand;
|
|
39
|
+
|
|
40
|
+
class AWSSecretsManagerProvider extends base {
|
|
41
|
+
constructor(provider_arg, urlExtendedPart) {
|
|
42
|
+
super(urlExtendedPart);
|
|
43
|
+
if (provider_arg) {
|
|
44
|
+
this._addParam("secretname", provider_arg);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
init() {
|
|
49
|
+
initAwsCommon();
|
|
50
|
+
({ SecretsManagerClient, GetSecretValueCommand } = require("@aws-sdk/client-secrets-manager"));
|
|
51
|
+
this.requestHandler = initAwsRequestHandler(this.paramMap);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
resolveSecretString(response) {
|
|
55
|
+
let secretString = response.SecretString;
|
|
56
|
+
if (!secretString && response.SecretBinary) {
|
|
57
|
+
secretString = Buffer.from(response.SecretBinary, "base64").toString(
|
|
58
|
+
"utf-8"
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!secretString) {
|
|
63
|
+
throw new Error("Secret payload is empty");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return secretString;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async returnConfig() {
|
|
70
|
+
const fetchRegion = await resolveRegion(this.paramMap);
|
|
71
|
+
|
|
72
|
+
this.credential = createAwsCredential(
|
|
73
|
+
this.paramMap,
|
|
74
|
+
this.requestHandler,
|
|
75
|
+
fetchRegion
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
const secretsManagerClient = new SecretsManagerClient({
|
|
79
|
+
region: fetchRegion,
|
|
80
|
+
credentials: this.credential,
|
|
81
|
+
requestHandler: this.requestHandler,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
const secretIdentifier = this.paramMap.get("secretname");
|
|
85
|
+
if (!secretIdentifier) {
|
|
86
|
+
throw new Error(
|
|
87
|
+
"Secret identifier not provided for AWS Secrets Manager ConfigProvider."
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const input = {
|
|
92
|
+
SecretId: secretIdentifier,
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const versionId = this.paramMap.get("versionid");
|
|
96
|
+
if (versionId) {
|
|
97
|
+
input.VersionId = versionId;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
const command = new GetSecretValueCommand(input);
|
|
102
|
+
const response = await secretsManagerClient.send(command);
|
|
103
|
+
|
|
104
|
+
const secretString = this.resolveSecretString(response);
|
|
105
|
+
|
|
106
|
+
try {
|
|
107
|
+
return JSON.parse(secretString);
|
|
108
|
+
} catch {
|
|
109
|
+
return secretString;
|
|
110
|
+
}
|
|
111
|
+
} catch (e) {
|
|
112
|
+
throw new Error(
|
|
113
|
+
`Failed to retrieve configuration from AWS Secrets Manager: ${e.message}`
|
|
114
|
+
);
|
|
115
|
+
} finally {
|
|
116
|
+
secretsManagerClient.destroy();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
async function hookFn(args) {
|
|
123
|
+
const configProvider = new AWSSecretsManagerProvider(
|
|
124
|
+
args.provider_arg,
|
|
125
|
+
args.urlExtendedPart
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
if (args.paramMap) {
|
|
129
|
+
configProvider.paramMap = args.paramMap;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
try {
|
|
133
|
+
configProvider.init();
|
|
134
|
+
} catch (err) {
|
|
135
|
+
const errmsg = util.format(
|
|
136
|
+
"AWS Secrets Manager Config Provider failed to load required modules: %s\n%s",
|
|
137
|
+
err.message,
|
|
138
|
+
err.stack
|
|
139
|
+
);
|
|
140
|
+
throw new Error(errmsg);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const cfg = await configProvider.returnConfig();
|
|
144
|
+
return [cfg, null];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
oracledb.registerConfigurationProviderHook("awssecretsmanager", hookFn);
|
|
@@ -29,6 +29,7 @@ let ClientSecretCredential, ClientCertificateCredential, ChainedTokenCredential,
|
|
|
29
29
|
const util = require('node:util');
|
|
30
30
|
const { base } = require("../base.js");
|
|
31
31
|
const oracledb = require('oracledb');
|
|
32
|
+
|
|
32
33
|
class AzureProvider extends base {
|
|
33
34
|
constructor(provider_arg, urlExtendedPart) {
|
|
34
35
|
super(urlExtendedPart);
|
|
@@ -96,7 +97,7 @@ class AzureProvider extends base {
|
|
|
96
97
|
return credential;
|
|
97
98
|
}
|
|
98
99
|
async returnConfig() {
|
|
99
|
-
|
|
100
|
+
let configObject = {};
|
|
100
101
|
const label = this.paramMap.get("label");
|
|
101
102
|
try {
|
|
102
103
|
this.credential = await this.returnAzureCredential();
|
|
@@ -115,10 +116,8 @@ class AzureProvider extends base {
|
|
|
115
116
|
const params = (await this.retrieveParamValueFromAzureConfigurationProvider(client, label, 'njs'));
|
|
116
117
|
if (params) {
|
|
117
118
|
const obj = JSON.parse(params);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
configObject[key] = val;
|
|
121
|
-
}
|
|
119
|
+
const spreadNjs = { ...obj };
|
|
120
|
+
configObject = { ...configObject, ...spreadNjs };
|
|
122
121
|
} else {
|
|
123
122
|
configObject['njs'] = null;
|
|
124
123
|
}
|
|
@@ -91,7 +91,6 @@ async function servicePrincipalCredentials(params) {
|
|
|
91
91
|
|
|
92
92
|
function hookFn(options) {
|
|
93
93
|
if (options.tokenAuthConfigAzure) {
|
|
94
|
-
// eslint-disable-next-line no-unused-vars
|
|
95
94
|
options.accessToken = async function callbackFn(refresh, config) {
|
|
96
95
|
return await getToken(config);
|
|
97
96
|
};
|
|
@@ -200,7 +200,6 @@ async function instancePrincipalAuthentication(accessTokenConfig) {
|
|
|
200
200
|
//---------------------------------------------------------------------------
|
|
201
201
|
function hookFn(options) {
|
|
202
202
|
if (options.tokenAuthConfigOci) {
|
|
203
|
-
// eslint-disable-next-line no-unused-vars
|
|
204
203
|
options.accessToken = async function callbackFn(refresh, config) {
|
|
205
204
|
return await getToken(config);
|
|
206
205
|
};
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
oracledb-6.10.0-darwin-arm64.node v22.17.1 71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d 8b14d5980d7d6116abb8865c7baed9e458698dbf Thu, 09 Oct 2025 15:26:22 GMT
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
oracledb-6.10.0-darwin-x64.node v20.11.1 71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d 8b14d5980d7d6116abb8865c7baed9e458698dbf Thu, 09 Oct 2025 15:33:20 GMT
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
oracledb-6.10.0-linux-arm64.node v20.19.2 71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d 8b14d5980d7d6116abb8865c7baed9e458698dbf Thu, 09 Oct 2025 13:43:20 GMT
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
oracledb-6.10.0-linux-x64.node v22.16.0 71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d 8b14d5980d7d6116abb8865c7baed9e458698dbf Thu, 09 Oct 2025 13:31:19 GMT
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
oracledb-6.10.0-win32-x64.node v22.17.1 71ba4e79b3fb8ffe6191e84eb0422c9bdfbb6c9d 8b14d5980d7d6116abb8865c7baed9e458698dbf Thu, 09 Oct 2025 13:31:10 GMT
|