@sap/datasphere-cli 2025.17.0 → 2025.20.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/CHANGELOG.md CHANGED
@@ -5,6 +5,42 @@ All notable changes to this project SAP Datasphere Command-Line Interface (DS CL
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 2025.20.0
9
+
10
+ ### Changed
11
+
12
+ - The CLI has been migrated to [EcmaScript Module (ESM)](https://nodejs.org/api/esm.html) syntax. As a result, support for Node.js versions 18 and 19 has been dropped, and Node.js 20 or later is now required. No APIs or other external properties of the CLI have been modified, so with a supported Node.js version, the CLI is expected to continue functioning as before.
13
+
14
+ ## 2025.18.0
15
+
16
+ ### Changed
17
+
18
+ - **Enhanced TLS configuration for improved security.** The CLI now uses TLS 1.2 by default for all HTTPS requests, ensuring secure communication with servers. Users can adjust the TLS version if needed using the `--tls-version` flag with options "TLSv1.2" or "TLSv1.3".
19
+ - The CLI has been migrated to [EcmaScript Module (ESM)](https://nodejs.org/api/esm.html) syntax. As a result, support for Node.js versions 18 and 19 has been dropped, and Node.js 20 or later is now required. No APIs or other external properties of the CLI have been modified, so with a supported Node.js version, the CLI is expected to continue functioning as before.
20
+
21
+ ### Added
22
+
23
+ - **New environment variable `CLI_LEGACY_TLS_DETECTION`.** When set to `"true"`, this disables TLS version enforcement and lets Node.js decide the default TLS version. This provides compatibility with older Node.js versions or specific environments where TLS version enforcement might cause issues.
24
+
25
+ ### Fixed
26
+
27
+ - The CLI now correctly handles the secrets overwrite confirmation when using the `--secrets-file` option. If the cached secret already exists the user is prompted to confirm whether to overwrite the existing secret or not. If the user chooses to overwrite, the CLI deletes the existing secret and continues with the default login process.
28
+
29
+ ## 2025.14.0
30
+
31
+ ### Changed
32
+
33
+ - The login experience has been improved: When logging in, it is now clearly indicated if a secret for a tenant already exists, and confirmation is requested before overwriting it. Previously, existing secrets were not overwritten, but this was not clearly communicated. The process is now transparent and user-driven, helping to prevent accidental loss of credentials and confusion.
34
+
35
+ Example:
36
+
37
+ ```bash
38
+ $ datasphere login
39
+ ? Secret for tenant https://example-tenant.hanacloudservices.cloud.sap already exists. Do you want to overwrite it? › (Y/n)
40
+ ```
41
+
42
+ After confirming, the CLI will overwrite the existing secret with the new one. If the user chooses not to overwrite, the CLI will exit gracefully without making any changes.
43
+
8
44
  ## 2025.12.0
9
45
 
10
46
  ### Fixed
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Command-Line Interface (CLI) for SAP Datasphere.
4
4
 
5
- [![Node Version](https://img.shields.io/badge/node-18.xx.x-brightgreen)](https://nodejs.org/dist/latest-v18.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-19.xx.x-brightgreen)](https://nodejs.org/dist/latest-v19.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-20.xx.x-brightgreen)](https://nodejs.org/dist/latest-v20.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-21.xx.x-brightgreen)](https://nodejs.org/dist/latest-v21.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-22.xx.x-brightgreen)](https://nodejs.org/dist/latest-v22.x/docs/api/#) [![npm version](https://badge.fury.io/js/@sap%2Fdatasphere-cli.svg)](https://badge.fury.io/js/@sap%2Fdatasphere-cli) [![Documentation](https://img.shields.io/badge/docs-online-ff69b4.svg)](https://help.sap.com/docs/SAP_DATASPHERE/d0ecd6f297ac40249072a44df0549c1a/3f9a42ccde6b4b6aba121e2aab79c36d.html) [![Command help pages](https://img.shields.io/badge/command-help-lightgrey.svg)](#usage) ![NPM](https://img.shields.io/npm/l/@sap/datasphere-cli?color=%23FFFF00)
5
+ [![Node Version](https://img.shields.io/badge/node-20.xx.x-brightgreen)](https://nodejs.org/dist/latest-v20.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-21.xx.x-brightgreen)](https://nodejs.org/dist/latest-v21.x/docs/api/#) [![Node Version](https://img.shields.io/badge/node-22.xx.x-brightgreen)](https://nodejs.org/dist/latest-v22.x/docs/api/#) [![npm version](https://badge.fury.io/js/@sap%2Fdatasphere-cli.svg)](https://badge.fury.io/js/@sap%2Fdatasphere-cli) [![Documentation](https://img.shields.io/badge/docs-online-ff69b4.svg)](https://help.sap.com/docs/SAP_DATASPHERE/d0ecd6f297ac40249072a44df0549c1a/3f9a42ccde6b4b6aba121e2aab79c36d.html) [![Command help pages](https://img.shields.io/badge/command-help-lightgrey.svg)](#usage) ![NPM](https://img.shields.io/npm/l/@sap/datasphere-cli?color=%23FFFF00)
6
6
 
7
7
  ## Content
8
8
 
package/module.js CHANGED
@@ -1,12 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCommands = exports.configure = void 0;
4
- if (process.env.SUPPRESS_NO_CONFIG_WARNING === undefined) {
5
- process.env.SUPPRESS_NO_CONFIG_WARNING = "true";
6
- }
7
- // eslint-disable-next-line import/first
8
- const utils_1 = require("./utils");
9
- (0, utils_1.configure)();
10
- var cli_core_1 = require("@sap/cli-core");
11
- Object.defineProperty(exports, "configure", { enumerable: true, get: function () { return cli_core_1.configure; } });
12
- Object.defineProperty(exports, "getCommands", { enumerable: true, get: function () { return cli_core_1.getCommands; } });
1
+ import { configure } from "./utils.js";
2
+ configure();
3
+ export { configure, getCommands } from "@sap/cli-core";
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@sap/datasphere-cli",
3
- "version": "2025.17.0",
3
+ "version": "2025.20.0",
4
4
  "description": "Command-Line Interface for SAP Datasphere.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "SAP SE",
7
+ "type": "module",
7
8
  "homepage": "https://www.sap.com",
8
9
  "main": "module.js",
9
10
  "bin": {
10
11
  "datasphere": "terminal.js"
11
12
  },
12
13
  "engines": {
13
- "node": "^18 || ^19 || ^20 || ^21 || ^22",
14
+ "node": "^20 || ^21 || ^22",
14
15
  "npm": "^9 || ^10"
15
16
  },
16
17
  "keywords": [
@@ -19,6 +20,6 @@
19
20
  "datasphere-cli"
20
21
  ],
21
22
  "dependencies": {
22
- "@sap/cli-core": "2025.16.0"
23
+ "@sap/cli-core": "2025.19.0"
23
24
  }
24
25
  }
package/terminal.js CHANGED
@@ -1,14 +1,8 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- /* eslint-disable import/first */
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- if (process.env.SUPPRESS_NO_CONFIG_WARNING === undefined) {
6
- process.env.SUPPRESS_NO_CONFIG_WARNING = "true";
7
- }
8
- const cli_core_1 = require("@sap/cli-core");
9
- const utils_1 = require("./utils");
10
- (0, utils_1.configure)();
2
+ import { run } from "@sap/cli-core";
3
+ import { configure } from "./utils.js";
4
+ configure();
11
5
  void (async () => {
12
- (0, utils_1.configure)();
13
- void (0, cli_core_1.run)();
6
+ configure();
7
+ void run();
14
8
  })();
package/utils.js CHANGED
@@ -1,20 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configure = void 0;
4
- const cli_core_1 = require("@sap/cli-core");
5
- const configure = () => {
6
- (0, cli_core_1.configureCoreModule)({
7
- name: (0, cli_core_1.getBin)(__dirname),
8
- packageName: (0, cli_core_1.getPackageName)(__dirname),
1
+ import { AuthenticationMethod, configureCoreModule, getVersion, getDescription, getPackageName, getBin, } from "@sap/cli-core";
2
+ export const configure = () => {
3
+ configureCoreModule({
4
+ name: getBin(import.meta.dirname),
5
+ packageName: getPackageName(import.meta.dirname),
9
6
  discoveryPaths: ["/dwaas-core/api/v1/discovery"],
10
- description: (0, cli_core_1.getDescription)(__dirname),
7
+ description: getDescription(import.meta.dirname),
11
8
  sapHelpLink: "tinyurl.com/datasphere-cli-help",
12
- version: (0, cli_core_1.getVersion)(__dirname),
9
+ version: getVersion(import.meta.dirname),
13
10
  genericOptionsHelp: "https://tinyurl.com/yck8vv4w",
14
11
  authenticationMethods: [
15
- cli_core_1.AuthenticationMethod.oauth,
16
- cli_core_1.AuthenticationMethod.passcode,
12
+ AuthenticationMethod.oauth,
13
+ AuthenticationMethod.passcode,
17
14
  ],
18
15
  });
19
16
  };
20
- exports.configure = configure;