@mcp-abap-adt/connection 9.4.0 → 9.4.2
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 +24 -1
- package/README.md +3 -2
- package/bin/sap-abap-auth.js +9 -1
- package/docs/STATEFUL_SESSION_GUIDE.md +4 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [9.4.2] - 2026-09-27
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **`@mcp-abap-adt/sap-rfc-lite` `^0.2.1`** (was `^0.2.0`). 0.2.0 on npm was
|
|
15
|
+
packed with a stale `lib/`: its JS client has no `resetServerContext`, so
|
|
16
|
+
this connector found no reset and fell back to a new RFC connection per
|
|
17
|
+
stateless call — correct, but a full RFC run took about 1010 s instead of
|
|
18
|
+
about 684 s. 0.2.1 is packed from `src/`. Raising the minimum makes npm
|
|
19
|
+
replace a locked 0.2.0 too, since it no longer satisfies the range.
|
|
20
|
+
|
|
21
|
+
## [9.4.1] - 2026-09-27
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **`sap-abap-auth --version` printed `0.1.0`** — a number written into the CLI, not the package's. It reads `package.json` now.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **`version` as a command, and `-v`**, for `sap-abap-auth`: `help` / `--help` / `-h` and `version` / `--version` / `-v` — the same set in every CLI of the family, each answering before anything starts or connects.
|
|
30
|
+
|
|
10
31
|
## [9.4.0] - 2026-09-27
|
|
11
32
|
|
|
12
33
|
### Changed
|
|
@@ -1902,7 +1923,9 @@ const connection = createAbapConnection(config, logger);
|
|
|
1902
1923
|
- JWT token refresh now properly handles connection errors (401/403 during initial connect)
|
|
1903
1924
|
- Permission errors (403 with "ExceptionResourceNoAccess") no longer trigger JWT refresh loops
|
|
1904
1925
|
- Proper separation: base class handles HTTP/session, concrete classes handle auth-specific errors
|
|
1905
|
-
[Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.
|
|
1926
|
+
[Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.2...HEAD
|
|
1927
|
+
[9.4.2]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.1...v9.4.2
|
|
1928
|
+
[9.4.1]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.0...v9.4.1
|
|
1906
1929
|
[9.4.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.4...v9.4.0
|
|
1907
1930
|
[9.3.4]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.3...v9.3.4
|
|
1908
1931
|
[9.3.3]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.2...v9.3.3
|
package/README.md
CHANGED
|
@@ -294,8 +294,9 @@ on BASIS < 7.50.
|
|
|
294
294
|
|
|
295
295
|
Since 9.3.2, LOCK and UNLOCK in stateful mode share the persistent RFC
|
|
296
296
|
conversation; stateless requests use a separate ABAP context. With
|
|
297
|
-
`sap-rfc-lite` 0.2.
|
|
298
|
-
conversation; older clients open one conversation per
|
|
297
|
+
`sap-rfc-lite` 0.2.1 or newer (required since 9.4.2), that context is reset
|
|
298
|
+
between calls on a kept conversation; older clients open one conversation per
|
|
299
|
+
call. 0.2.0 on npm lacks the reset in its JS client and behaves like an older one. This prevents stale
|
|
299
300
|
package state from causing PAK/058 on later writes or SADT_RESOURCE/007 on a
|
|
300
301
|
read after create. Concurrent calls use a separate conversation. See
|
|
301
302
|
[RFC conversation isolation](./docs/STATEFUL_SESSION_GUIDE.md#rfc-conversation-isolation-932-and-933).
|
package/bin/sap-abap-auth.js
CHANGED
|
@@ -595,7 +595,7 @@ async function main() {
|
|
|
595
595
|
.description(
|
|
596
596
|
"CLI utility for authentication in SAP BTP ABAP Environment (Steampunk) via browser. Creates .env file with connection configuration."
|
|
597
597
|
)
|
|
598
|
-
.version("
|
|
598
|
+
.version(require("../package.json").version, "-v, --version", "Show version number")
|
|
599
599
|
.helpOption("-h, --help", "Show help for all commands and options");
|
|
600
600
|
|
|
601
601
|
program
|
|
@@ -736,6 +736,14 @@ async function main() {
|
|
|
736
736
|
}
|
|
737
737
|
});
|
|
738
738
|
|
|
739
|
+
// `version` as a command, like every CLI in the family (`help` is commander's).
|
|
740
|
+
program
|
|
741
|
+
.command("version")
|
|
742
|
+
.description("Show version number")
|
|
743
|
+
.action(() => {
|
|
744
|
+
console.log(require("../package.json").version);
|
|
745
|
+
});
|
|
746
|
+
|
|
739
747
|
// Parse and handle command-line arguments
|
|
740
748
|
program.parse(process.argv);
|
|
741
749
|
|
|
@@ -62,7 +62,8 @@ BASIS 7.40 and ABAP Cloud were not integration-tested for this change.
|
|
|
62
62
|
Stateful requests, including LOCK and UNLOCK, share the conversation opened
|
|
63
63
|
by `connect()`. Stateless calls reuse a second conversation: the transport
|
|
64
64
|
resets its ABAP server context after each call, keeping the RFC logon open
|
|
65
|
-
(`sap-rfc-lite` 0.2.
|
|
65
|
+
(`sap-rfc-lite` 0.2.1, required since 9.4.2; 9.4.0 required 0.2.0, whose npm
|
|
66
|
+
package lacks the reset in its JS client, and 9.3.4 introduced it and still
|
|
66
67
|
accepted 0.1.x). When that conversation is busy with another call, a stateless
|
|
67
68
|
call gets a separate temporary conversation. Both `setSessionType('stateful')` and a caller-supplied stateful
|
|
68
69
|
session header select the persistent conversation.
|
|
@@ -75,8 +76,8 @@ create, read, two lock/PUT/unlock rounds and delete passed on one connection.
|
|
|
75
76
|
|
|
76
77
|
A resettable call took about 0.24 s total on E19; a temporary conversation
|
|
77
78
|
pays for an RFC logon, about 0.5 s on top of about 0.1 s for the call — which
|
|
78
|
-
is what every stateless call cost with `sap-rfc-lite` 0.1.x
|
|
79
|
-
requires 0.2.
|
|
79
|
+
is what every stateless call cost with `sap-rfc-lite` 0.1.x (and with 0.2.0,
|
|
80
|
+
whose npm package lacks the reset), and why 9.4.2 requires 0.2.1. Direct connector users must mark
|
|
80
81
|
LOCK and UNLOCK stateful to retain their conversation. If disconnect occurs
|
|
81
82
|
while a temporary conversation is logging on, it is closed without sending
|
|
82
83
|
the request; reconnect does not revive that pending request.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/connection",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.2",
|
|
4
4
|
"description": "ABAP connection layer for MCP ABAP ADT server",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"open": "^11.0.0"
|
|
64
64
|
},
|
|
65
65
|
"optionalDependencies": {
|
|
66
|
-
"@mcp-abap-adt/sap-rfc-lite": "^0.2.
|
|
66
|
+
"@mcp-abap-adt/sap-rfc-lite": "^0.2.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@biomejs/biome": "^2.3.14",
|