arc-1 0.9.25 → 1.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/README.md +29 -12
- package/dist/adt/abapgit.d.ts +19 -6
- package/dist/adt/abapgit.d.ts.map +1 -1
- package/dist/adt/abapgit.js +141 -36
- package/dist/adt/abapgit.js.map +1 -1
- package/dist/adt/authorization-trace.d.ts +23 -0
- package/dist/adt/authorization-trace.d.ts.map +1 -0
- package/dist/adt/authorization-trace.js +196 -0
- package/dist/adt/authorization-trace.js.map +1 -0
- package/dist/adt/client.d.ts +21 -8
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +47 -7
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +15 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +7 -2
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +12 -4
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +27 -17
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +45 -34
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +13 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +120 -50
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts +1 -1
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +1 -0
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +8 -8
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +30 -11
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/http.d.ts +17 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +102 -19
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/oauth.d.ts +2 -2
- package/dist/adt/oauth.d.ts.map +1 -1
- package/dist/adt/oauth.js +5 -3
- package/dist/adt/oauth.js.map +1 -1
- package/dist/adt/package-hierarchy.d.ts.map +1 -1
- package/dist/adt/package-hierarchy.js.map +1 -1
- package/dist/adt/rap-generate.js.map +1 -1
- package/dist/adt/rap-handlers.js.map +1 -1
- package/dist/adt/rap-preflight.js.map +1 -1
- package/dist/adt/safety.d.ts +13 -13
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/semaphore.d.ts.map +1 -1
- package/dist/adt/server-driven.d.ts +154 -34
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +178 -53
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/structure-hierarchy.js.map +1 -1
- package/dist/adt/transport.d.ts +6 -6
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +23 -34
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +94 -6
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/version-diff.js.map +1 -1
- package/dist/adt/xml-parser.d.ts +52 -12
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +120 -10
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/aff/validator.js.map +1 -1
- package/dist/authz/policy.d.ts +8 -0
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +24 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +4 -36
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +4 -5
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +6 -22
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +5 -29
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/inactive-list-cache.d.ts.map +1 -1
- package/dist/cache/memory.d.ts +2 -13
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +1 -70
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +3 -10
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +9 -85
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli.js +6 -3
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/grep.js.map +1 -1
- package/dist/context/unit-surgery.d.ts +28 -0
- package/dist/context/unit-surgery.d.ts.map +1 -0
- package/dist/context/unit-surgery.js +150 -0
- package/dist/context/unit-surgery.js.map +1 -0
- package/dist/extract-sap-cookies.js.map +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +44 -6
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/context.d.ts +1 -1
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +98 -28
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +74 -31
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +12 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +160 -25
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +27 -14
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +63 -25
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/function-processing.d.ts +61 -0
- package/dist/handlers/function-processing.d.ts.map +1 -0
- package/dist/handlers/function-processing.js +45 -0
- package/dist/handlers/function-processing.js.map +1 -0
- package/dist/handlers/git.d.ts.map +1 -1
- package/dist/handlers/git.js +44 -19
- package/dist/handlers/git.js.map +1 -1
- package/dist/handlers/hyperfocused.d.ts.map +1 -1
- package/dist/handlers/hyperfocused.js +2 -3
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/lint.d.ts.map +1 -1
- package/dist/handlers/lint.js +7 -7
- package/dist/handlers/lint.js.map +1 -1
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +47 -28
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +27 -90
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +2 -0
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +10 -0
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query-errors.d.ts +11 -0
- package/dist/handlers/query-errors.d.ts.map +1 -0
- package/dist/handlers/query-errors.js +216 -0
- package/dist/handlers/query-errors.js.map +1 -0
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +62 -67
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +64 -41
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +285 -234
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +126 -32
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts.map +1 -1
- package/dist/handlers/search.js +8 -7
- package/dist/handlers/search.js.map +1 -1
- package/dist/handlers/shared.d.ts +13 -0
- package/dist/handlers/shared.d.ts.map +1 -1
- package/dist/handlers/shared.js +15 -0
- package/dist/handlers/shared.js.map +1 -1
- package/dist/handlers/tool-descriptions.d.ts +4 -0
- package/dist/handlers/tool-descriptions.d.ts.map +1 -0
- package/dist/handlers/tool-descriptions.js +52 -0
- package/dist/handlers/tool-descriptions.js.map +1 -0
- package/dist/handlers/tool-registry.d.ts +20 -6
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +18 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +124 -92
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +37 -10
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/where-used.d.ts +25 -0
- package/dist/handlers/where-used.d.ts.map +1 -0
- package/dist/handlers/where-used.js +94 -0
- package/dist/handlers/where-used.js.map +1 -0
- package/dist/handlers/write/class-surgery.d.ts.map +1 -1
- package/dist/handlers/write/class-surgery.js +11 -12
- package/dist/handlers/write/class-surgery.js.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +194 -84
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/rap.d.ts.map +1 -1
- package/dist/handlers/write/rap.js +9 -9
- package/dist/handlers/write/rap.js.map +1 -1
- package/dist/handlers/write/unit-surgery.d.ts +5 -0
- package/dist/handlers/write/unit-surgery.d.ts.map +1 -0
- package/dist/handlers/write/unit-surgery.js +47 -0
- package/dist/handlers/write/unit-surgery.js.map +1 -0
- package/dist/handlers/write/update-delete.js +8 -8
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +7 -4
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +118 -63
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +35 -13
- package/dist/handlers/write.js.map +1 -1
- package/dist/lint/config-builder.js.map +1 -1
- package/dist/lint/lint.d.ts.map +1 -1
- package/dist/lint/lint.js +4 -2
- package/dist/lint/lint.js.map +1 -1
- package/dist/probe/catalog.js +1 -1
- package/dist/probe/catalog.js.map +1 -1
- package/dist/public/testing.js.map +1 -1
- package/dist/public/ui/app.js +1 -14
- package/dist/registry/tool-registry.d.ts.map +1 -1
- package/dist/server/audit.d.ts +27 -15
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/auth-rate-limit.d.ts +18 -9
- package/dist/server/auth-rate-limit.d.ts.map +1 -1
- package/dist/server/auth-rate-limit.js +31 -6
- package/dist/server/auth-rate-limit.js.map +1 -1
- package/dist/server/auth-summary.d.ts +4 -0
- package/dist/server/auth-summary.d.ts.map +1 -0
- package/dist/server/auth-summary.js +67 -0
- package/dist/server/auth-summary.js.map +1 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +110 -7
- package/dist/server/config.js.map +1 -1
- package/dist/server/context.d.ts +12 -0
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js.map +1 -1
- package/dist/server/destination-discovery.d.ts +36 -0
- package/dist/server/destination-discovery.d.ts.map +1 -0
- package/dist/server/destination-discovery.js +130 -0
- package/dist/server/destination-discovery.js.map +1 -0
- package/dist/server/destination-registry.d.ts +111 -0
- package/dist/server/destination-registry.d.ts.map +1 -0
- package/dist/server/destination-registry.js +449 -0
- package/dist/server/destination-registry.js.map +1 -0
- package/dist/server/http.d.ts +43 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +283 -73
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +58 -13
- package/dist/server/logger.js.map +1 -1
- package/dist/server/mcp-rate-limit.d.ts +6 -4
- package/dist/server/mcp-rate-limit.d.ts.map +1 -1
- package/dist/server/mcp-rate-limit.js +6 -4
- package/dist/server/mcp-rate-limit.js.map +1 -1
- package/dist/server/multi-target-basic-auth.d.ts +49 -0
- package/dist/server/multi-target-basic-auth.d.ts.map +1 -0
- package/dist/server/multi-target-basic-auth.js +246 -0
- package/dist/server/multi-target-basic-auth.js.map +1 -0
- package/dist/server/multi-target-catalog.d.ts +33 -0
- package/dist/server/multi-target-catalog.d.ts.map +1 -0
- package/dist/server/multi-target-catalog.js +130 -0
- package/dist/server/multi-target-catalog.js.map +1 -0
- package/dist/server/multi-target-destination-config.d.ts +12 -0
- package/dist/server/multi-target-destination-config.d.ts.map +1 -0
- package/dist/server/multi-target-destination-config.js +37 -0
- package/dist/server/multi-target-destination-config.js.map +1 -0
- package/dist/server/multi-target-destination-runtime.d.ts +20 -0
- package/dist/server/multi-target-destination-runtime.d.ts.map +1 -0
- package/dist/server/multi-target-destination-runtime.js +191 -0
- package/dist/server/multi-target-destination-runtime.js.map +1 -0
- package/dist/server/multi-target-feature-state.d.ts +6 -0
- package/dist/server/multi-target-feature-state.d.ts.map +1 -0
- package/dist/server/multi-target-feature-state.js +41 -0
- package/dist/server/multi-target-feature-state.js.map +1 -0
- package/dist/server/multi-target-identity.d.ts +10 -0
- package/dist/server/multi-target-identity.d.ts.map +1 -0
- package/dist/server/multi-target-identity.js +18 -0
- package/dist/server/multi-target-identity.js.map +1 -0
- package/dist/server/multi-target-runtime.d.ts +27 -0
- package/dist/server/multi-target-runtime.d.ts.map +1 -0
- package/dist/server/multi-target-runtime.js +110 -0
- package/dist/server/multi-target-runtime.js.map +1 -0
- package/dist/server/multi-target-server.d.ts +53 -0
- package/dist/server/multi-target-server.d.ts.map +1 -0
- package/dist/server/multi-target-server.js +434 -0
- package/dist/server/multi-target-server.js.map +1 -0
- package/dist/server/multi-target-shared-auth-state.d.ts +82 -0
- package/dist/server/multi-target-shared-auth-state.d.ts.map +1 -0
- package/dist/server/multi-target-shared-auth-state.js +226 -0
- package/dist/server/multi-target-shared-auth-state.js.map +1 -0
- package/dist/server/multi-target-tools.d.ts +20 -0
- package/dist/server/multi-target-tools.d.ts.map +1 -0
- package/dist/server/multi-target-tools.js +191 -0
- package/dist/server/multi-target-tools.js.map +1 -0
- package/dist/server/oauth-session-recovery.d.ts +22 -0
- package/dist/server/oauth-session-recovery.d.ts.map +1 -0
- package/dist/server/oauth-session-recovery.js +69 -0
- package/dist/server/oauth-session-recovery.js.map +1 -0
- package/dist/server/server.d.ts +47 -25
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +490 -301
- package/dist/server/server.js.map +1 -1
- package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
- package/dist/server/sinks/btp-auditlog.js +83 -11
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/sinks/stderr.d.ts.map +1 -1
- package/dist/server/sinks/stderr.js.map +1 -1
- package/dist/server/tool-auth.d.ts +10 -0
- package/dist/server/tool-auth.d.ts.map +1 -0
- package/dist/server/tool-auth.js +75 -0
- package/dist/server/tool-auth.js.map +1 -0
- package/dist/server/trace-context.d.ts +51 -0
- package/dist/server/trace-context.d.ts.map +1 -0
- package/dist/server/trace-context.js +100 -0
- package/dist/server/trace-context.js.map +1 -0
- package/dist/server/types.d.ts +28 -7
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +5 -2
- package/dist/server/types.js.map +1 -1
- package/dist/server/ui-log-buffer.d.ts.map +1 -1
- package/dist/server/ui-log-buffer.js.map +1 -1
- package/dist/server/ui-state.d.ts +0 -2
- package/dist/server/ui-state.d.ts.map +1 -1
- package/dist/server/ui-state.js +2 -6
- package/dist/server/ui-state.js.map +1 -1
- package/dist/server/ui.d.ts.map +1 -1
- package/dist/server/ui.js +8 -9
- package/dist/server/ui.js.map +1 -1
- package/package.json +21 -18
- package/dist/cache/warmup.d.ts +0 -41
- package/dist/cache/warmup.d.ts.map +0 -1
- package/dist/cache/warmup.js +0 -337
- package/dist/cache/warmup.js.map +0 -1
- package/dist/server/elicit.d.ts +0 -43
- package/dist/server/elicit.d.ts.map +0 -1
- package/dist/server/elicit.js +0 -183
- package/dist/server/elicit.js.map +0 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Long-term SAP user authorization trace (STUSERTRACE) decoding.
|
|
3
|
+
*
|
|
4
|
+
* The trace itself is stored in SUAUTHVALTRC. Its FIELD1..FIELD0 columns are
|
|
5
|
+
* positional values; TOBJ supplies the matching authorization-field names.
|
|
6
|
+
*/
|
|
7
|
+
import { clampPreviewRows } from './client.js';
|
|
8
|
+
const AUTH_TRACE_COLUMNS = [
|
|
9
|
+
'USERNAME',
|
|
10
|
+
'NAME',
|
|
11
|
+
'TYPE',
|
|
12
|
+
'OBJECT',
|
|
13
|
+
'RC',
|
|
14
|
+
'FIELD1',
|
|
15
|
+
'FIELD2',
|
|
16
|
+
'FIELD3',
|
|
17
|
+
'FIELD4',
|
|
18
|
+
'FIELD5',
|
|
19
|
+
'FIELD6',
|
|
20
|
+
'FIELD7',
|
|
21
|
+
'FIELD8',
|
|
22
|
+
'FIELD9',
|
|
23
|
+
'FIELD0',
|
|
24
|
+
'ABAPPROG',
|
|
25
|
+
'ABAPLINE',
|
|
26
|
+
'FIRSTCALL',
|
|
27
|
+
];
|
|
28
|
+
const TRACE_FIELD_COLUMNS = [
|
|
29
|
+
'FIELD1',
|
|
30
|
+
'FIELD2',
|
|
31
|
+
'FIELD3',
|
|
32
|
+
'FIELD4',
|
|
33
|
+
'FIELD5',
|
|
34
|
+
'FIELD6',
|
|
35
|
+
'FIELD7',
|
|
36
|
+
'FIELD8',
|
|
37
|
+
'FIELD9',
|
|
38
|
+
'FIELD0',
|
|
39
|
+
];
|
|
40
|
+
const TOBJ_FIELD_COLUMNS = [
|
|
41
|
+
'FIEL1',
|
|
42
|
+
'FIEL2',
|
|
43
|
+
'FIEL3',
|
|
44
|
+
'FIEL4',
|
|
45
|
+
'FIEL5',
|
|
46
|
+
'FIEL6',
|
|
47
|
+
'FIEL7',
|
|
48
|
+
'FIEL8',
|
|
49
|
+
'FIEL9',
|
|
50
|
+
'FIEL0',
|
|
51
|
+
];
|
|
52
|
+
const AUTH_RC_LABELS = {
|
|
53
|
+
0: 'passed',
|
|
54
|
+
4: 'No authorization',
|
|
55
|
+
12: 'No authorization',
|
|
56
|
+
};
|
|
57
|
+
function rcLabel(rc) {
|
|
58
|
+
return AUTH_RC_LABELS[rc] ?? `denied (rc=${rc})`;
|
|
59
|
+
}
|
|
60
|
+
/** Convert SAP's UTC YYYYMMDDHHMMSS FIRSTCALL value to ISO-8601. */
|
|
61
|
+
export function parseFirstCallTs(raw) {
|
|
62
|
+
if (!/^\d{14}$/.test(raw))
|
|
63
|
+
return '';
|
|
64
|
+
const year = Number(raw.slice(0, 4));
|
|
65
|
+
const month = Number(raw.slice(4, 6));
|
|
66
|
+
const day = Number(raw.slice(6, 8));
|
|
67
|
+
const hour = Number(raw.slice(8, 10));
|
|
68
|
+
const minute = Number(raw.slice(10, 12));
|
|
69
|
+
const second = Number(raw.slice(12, 14));
|
|
70
|
+
const timestamp = new Date(Date.UTC(year, month - 1, day, hour, minute, second));
|
|
71
|
+
if (timestamp.getUTCFullYear() !== year ||
|
|
72
|
+
timestamp.getUTCMonth() !== month - 1 ||
|
|
73
|
+
timestamp.getUTCDate() !== day ||
|
|
74
|
+
timestamp.getUTCHours() !== hour ||
|
|
75
|
+
timestamp.getUTCMinutes() !== minute ||
|
|
76
|
+
timestamp.getUTCSeconds() !== second) {
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
return timestamp.toISOString();
|
|
80
|
+
}
|
|
81
|
+
/** Decode raw SUAUTHVALTRC rows into the stable SAPDiagnose response shape. */
|
|
82
|
+
export function decodeAuthTraceRows(rows, fieldNames, opts) {
|
|
83
|
+
const entries = rows.map((row) => {
|
|
84
|
+
const authObject = row.OBJECT ?? '';
|
|
85
|
+
const names = fieldNames[authObject] ?? [];
|
|
86
|
+
const fields = {};
|
|
87
|
+
TRACE_FIELD_COLUMNS.forEach((column, index) => {
|
|
88
|
+
const value = row[column] ?? '';
|
|
89
|
+
if (!value)
|
|
90
|
+
return;
|
|
91
|
+
fields[names[index] || column] = value;
|
|
92
|
+
});
|
|
93
|
+
const rc = Number(row.RC);
|
|
94
|
+
const program = row.ABAPPROG ?? '';
|
|
95
|
+
const line = row.ABAPLINE ?? '';
|
|
96
|
+
return {
|
|
97
|
+
user: row.USERNAME ?? '',
|
|
98
|
+
application: row.NAME || row.TYPE || '',
|
|
99
|
+
authObject,
|
|
100
|
+
rc,
|
|
101
|
+
result: rcLabel(rc),
|
|
102
|
+
fields,
|
|
103
|
+
codeLocation: program ? `${program}${line ? `:${line}` : ''}` : '',
|
|
104
|
+
firstSeen: parseFirstCallTs(row.FIRSTCALL ?? ''),
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
entries.sort((left, right) => {
|
|
108
|
+
if (!left.firstSeen)
|
|
109
|
+
return right.firstSeen ? 1 : 0;
|
|
110
|
+
if (!right.firstSeen)
|
|
111
|
+
return -1;
|
|
112
|
+
return right.firstSeen.localeCompare(left.firstSeen);
|
|
113
|
+
});
|
|
114
|
+
return entries.slice(0, opts.maxResults);
|
|
115
|
+
}
|
|
116
|
+
function buildAuthorizationTraceState(hasEntries) {
|
|
117
|
+
const warnings = [
|
|
118
|
+
'ARC-1 cannot read the current STUSERTRACE kernel/profile state through ADT. Existing rows may be historical and do not prove that tracing is currently active.',
|
|
119
|
+
];
|
|
120
|
+
if (!hasEntries) {
|
|
121
|
+
warnings.push('No entries matched. The trace may be inactive (N), active with filters (F) that do not match, active but not yet exercised, or the request filters may be too narrow.');
|
|
122
|
+
}
|
|
123
|
+
const activation = hasEntries
|
|
124
|
+
? undefined
|
|
125
|
+
: {
|
|
126
|
+
values: {
|
|
127
|
+
N: 'Inactive.',
|
|
128
|
+
F: 'Active only for filters maintained in STUSERTRACE (recommended for targeted production diagnosis).',
|
|
129
|
+
Y: 'Active for all users and application types; broad collection.',
|
|
130
|
+
},
|
|
131
|
+
temporary: 'In RZ11, choose Change Value and set auth/auth_user_trace to F (targeted) or Y (all users/applications). Select Change on All Servers when every application-server instance must participate. A dynamic RZ11 change is lost after an instance restart.',
|
|
132
|
+
filteredSetup: 'For F, open STUSERTRACE, choose Change Filter, and add at least one target user/application/object filter; F without a filter records nothing. Then reproduce the denied operation and query again.',
|
|
133
|
+
persistent: 'For restart-persistent activation, have SAP Basis maintain auth/auth_user_trace=F (or Y) in DEFAULT.PFL through the approved profile-maintenance workflow (RZ10 or operating-system profile maintenance), then apply it through the normal restart process.',
|
|
134
|
+
authorizations: 'Changing STUSERTRACE filters requires S_ADMI_FCD value STUF; evaluating trace data requires S_ADMI_FCD value STUR.',
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
status: 'unknown',
|
|
138
|
+
parameter: 'auth/auth_user_trace',
|
|
139
|
+
warnings,
|
|
140
|
+
verify: 'In SAP GUI, open RZ11 and display auth/auth_user_trace. STUSERTRACE also shows Inactive, Active (No filter), or Active with filter.',
|
|
141
|
+
...(activation ? { activation } : {}),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/** Read and decode the on-prem STUSERTRACE authorization trace. */
|
|
145
|
+
export async function getAuthorizationTrace(client, opts = {}) {
|
|
146
|
+
const maxResults = clampPreviewRows(opts.maxResults);
|
|
147
|
+
const where = [];
|
|
148
|
+
if (opts.user)
|
|
149
|
+
where.push({ field: 'USERNAME', op: '=', value: opts.user });
|
|
150
|
+
if (opts.authObject)
|
|
151
|
+
where.push({ field: 'OBJECT', op: '=', value: opts.authObject });
|
|
152
|
+
if (opts.onlyFailures)
|
|
153
|
+
where.push({ field: 'RC', op: '<>', value: '0' });
|
|
154
|
+
const traceResult = await client.runTableQuery('SUAUTHVALTRC', {
|
|
155
|
+
columns: [...AUTH_TRACE_COLUMNS],
|
|
156
|
+
where,
|
|
157
|
+
maxRows: maxResults,
|
|
158
|
+
});
|
|
159
|
+
const objects = Array.from(new Set(traceResult.rows.map((row) => row.OBJECT).filter(Boolean)));
|
|
160
|
+
const fieldNames = {};
|
|
161
|
+
if (objects.length > 0) {
|
|
162
|
+
const metadataResult = await client.runTableQuery('TOBJ', {
|
|
163
|
+
columns: ['OBJCT', ...TOBJ_FIELD_COLUMNS],
|
|
164
|
+
where: [{ field: 'OBJCT', op: 'IN', value: objects.join(',') }],
|
|
165
|
+
maxRows: 200,
|
|
166
|
+
});
|
|
167
|
+
for (const row of metadataResult.rows) {
|
|
168
|
+
const object = row.OBJCT ?? '';
|
|
169
|
+
if (!object)
|
|
170
|
+
continue;
|
|
171
|
+
const names = TOBJ_FIELD_COLUMNS.map((column) => row[column] ?? '');
|
|
172
|
+
while (names.at(-1) === '')
|
|
173
|
+
names.pop();
|
|
174
|
+
fieldNames[object] = names;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const entries = decodeAuthTraceRows(traceResult.rows, fieldNames, { maxResults });
|
|
178
|
+
const onlyFailures = opts.onlyFailures === true;
|
|
179
|
+
const note = entries.length === 0
|
|
180
|
+
? 'No authorization-trace entries matched. Review traceState warnings and activation guidance, then reproduce the operation or widen the filters.'
|
|
181
|
+
: `${entries.length} ${entries.length === 1 ? 'entry' : 'entries'}${onlyFailures ? ' (rc<>0)' : ''}. ` +
|
|
182
|
+
`Entries may be historical; verify the current trace state in RZ11. Results are capped at ${maxResults}; narrow the filters when more entries may exist.`;
|
|
183
|
+
return {
|
|
184
|
+
trace: 'STUSERTRACE (long-term user authorization trace, table SUAUTHVALTRC)',
|
|
185
|
+
traceState: buildAuthorizationTraceState(entries.length > 0),
|
|
186
|
+
filters: {
|
|
187
|
+
user: opts.user ?? null,
|
|
188
|
+
authObject: opts.authObject ?? null,
|
|
189
|
+
onlyFailures,
|
|
190
|
+
},
|
|
191
|
+
count: entries.length,
|
|
192
|
+
entries,
|
|
193
|
+
note,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=authorization-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-trace.js","sourceRoot":"","sources":["../../src/adt/authorization-trace.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/client.d.ts
CHANGED
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { AdtClientConfig } from './config.js';
|
|
19
19
|
import { type TableTypeInfo } from './ddic-xml.js';
|
|
20
|
-
import { AdtHttpClient } from './http.js';
|
|
20
|
+
import { AdtHttpClient, type AdtResponse } from './http.js';
|
|
21
21
|
import { type PackageHierarchyResolver } from './package-hierarchy.js';
|
|
22
22
|
import { type SafetyConfig } from './safety.js';
|
|
23
|
-
import type { AdtObjectLookupResult, AdtSearchResult, ApiReleaseStateInfo, AuthorizationFieldInfo, BspAppInfo, BspFileNode, ClassMetadata, ClassStructure, DataElementInfo, DomainInfo, EnhancementImplementationInfo, FeatureToggleInfo, InactiveObject, MessageClassInfo, RevisionListResult, SourceSearchResult, StructuredClassResponse, TransactionInfo } from './types.js';
|
|
23
|
+
import type { AdtObjectLookupResult, AdtSearchResult, ApiReleaseStateInfo, AuthorizationFieldInfo, BspAppInfo, BspFileNode, ClassMetadata, ClassStructure, DataElementInfo, DomainInfo, EnhancementImplementationInfo, FeatureToggleInfo, FunctionGroupStructure, FunctionModuleProperties, InactiveObject, MessageClassInfo, RevisionListResult, SourceSearchResult, StructuredClassResponse, TransactionInfo } from './types.js';
|
|
24
24
|
import { type DataPreviewMeta } from './xml-parser.js';
|
|
25
25
|
export interface SourceReadResult {
|
|
26
26
|
source: string;
|
|
@@ -155,14 +155,19 @@ export declare class AdtClient {
|
|
|
155
155
|
getInterface(name: string, opts?: SourceReadOptions): Promise<SourceReadResult>;
|
|
156
156
|
/** Get function module source code */
|
|
157
157
|
getFunction(group: string, name: string, opts?: SourceReadOptions): Promise<SourceReadResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Read a function module's processing attributes (SE37 "Processing Type" + update-task kind).
|
|
160
|
+
* These live in the fmodule metadata document, NOT in /source/main where the signature lives.
|
|
161
|
+
*
|
|
162
|
+
* No explicit Accept: the resource's native version differs per release (7.50 serves
|
|
163
|
+
* …fmodules.v2+xml, 758 serves v3 — both live-verified), so discovery negotiation is correct
|
|
164
|
+
* where a hardcoded version would be an assumption.
|
|
165
|
+
*/
|
|
166
|
+
getFunctionModuleProperties(group: string, name: string): Promise<FunctionModuleProperties>;
|
|
158
167
|
/** Resolve function group for a function module via quickSearch */
|
|
159
168
|
resolveFunctionGroup(fmName: string): Promise<string | null>;
|
|
160
169
|
/** Get function group structure (list of function modules + includes) */
|
|
161
|
-
getFunctionGroup(name: string): Promise<
|
|
162
|
-
name: string;
|
|
163
|
-
functions: string[];
|
|
164
|
-
includes: string[];
|
|
165
|
-
}>;
|
|
170
|
+
getFunctionGroup(name: string): Promise<FunctionGroupStructure>;
|
|
166
171
|
/** Get function group source code */
|
|
167
172
|
getFunctionGroupSource(name: string, opts?: SourceReadOptions): Promise<SourceReadResult>;
|
|
168
173
|
/** Get include source code */
|
|
@@ -458,7 +463,9 @@ export declare class AdtClient {
|
|
|
458
463
|
getInternalUser(): string | undefined;
|
|
459
464
|
/** Cache the internal ABAP user. Ignores empty / email-shaped values (a valid XUBNAME has no '@'). */
|
|
460
465
|
noteInternalUser(user: string | undefined): void;
|
|
461
|
-
/** Get system info as structured JSON (user, system details from discovery XML)
|
|
466
|
+
/** Get system info as structured JSON (user, system details from discovery XML).
|
|
467
|
+
* Compact: this string is returned verbatim to the LLM by SAPRead(type="SYSTEM"). Cannot use
|
|
468
|
+
* handlers' toolJson() here — adt/ must not depend on handlers/. */
|
|
462
469
|
getSystemInfo(): Promise<string>;
|
|
463
470
|
/** Get installed SAP components */
|
|
464
471
|
getInstalledComponents(): Promise<Array<{
|
|
@@ -491,6 +498,12 @@ export declare class AdtClient {
|
|
|
491
498
|
getBspAppStructure(appName: string, subPath?: string): Promise<BspFileNode[]>;
|
|
492
499
|
/** Read a single file from a BSP app */
|
|
493
500
|
getBspFileContent(appName: string, filePath: string): Promise<string>;
|
|
501
|
+
/**
|
|
502
|
+
* Raw object-root metadata at an explicit ADT URL (may carry `?version=…`).
|
|
503
|
+
* Used by post-create metadata writes that must round-trip SAP's own envelope
|
|
504
|
+
* instead of reconstructing a release-sensitive one.
|
|
505
|
+
*/
|
|
506
|
+
getObjectMetadata(objectUrl: string): Promise<AdtResponse>;
|
|
494
507
|
/**
|
|
495
508
|
* Resolve the ABAP package of an existing object by fetching its metadata.
|
|
496
509
|
* Returns the package name (e.g., "$TMP", "ZPACKAGE") or empty string if not found.
|
package/dist/adt/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAsB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/client.js
CHANGED
|
@@ -23,7 +23,7 @@ import { AdtHttpClient } from './http.js';
|
|
|
23
23
|
import { AdtPackageHierarchyResolver } from './package-hierarchy.js';
|
|
24
24
|
import { checkOperation, OperationType } from './safety.js';
|
|
25
25
|
import { Semaphore } from './semaphore.js';
|
|
26
|
-
import { assertApiReleaseStateConfirmed, buildApiReleasePutBody, parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseClassStructure, parseDataElementMetadata, parseDataPreviewMeta, parseDomainMetadata, parseEnhancementImplementation, parseFeatureToggleStates, parseFunctionGroup, parseInactiveObjects, parseInstalledComponents, parseMessageClass, parseRevisionFeed, parseSearchResults, parseServiceBinding, parseSourceSearchResults, parseSubpackageNodestructure, parseSystemInfo, parseTableContents, parseTransactionMetadata, } from './xml-parser.js';
|
|
26
|
+
import { assertApiReleaseStateConfirmed, buildApiReleasePutBody, parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseClassStructure, parseDataElementMetadata, parseDataPreviewMeta, parseDomainMetadata, parseEnhancementImplementation, parseFeatureToggleStates, parseFunctionGroup, parseFunctionGroupNodes, parseFunctionModuleProperties, parseInactiveObjects, parseInstalledComponents, parseMessageClass, parseRevisionFeed, parseSearchResults, parseServiceBinding, parseSourceSearchResults, parseSubpackageNodestructure, parseSystemInfo, parseTableContents, parseTransactionMetadata, } from './xml-parser.js';
|
|
27
27
|
function appendQueryParam(path, key, value) {
|
|
28
28
|
const [baseAndQuery, fragment] = path.split('#', 2);
|
|
29
29
|
const [base, query = ''] = (baseAndQuery ?? path).split('?', 2);
|
|
@@ -267,6 +267,8 @@ export class AdtClient {
|
|
|
267
267
|
bearerTokenProvider: config.bearerTokenProvider,
|
|
268
268
|
samlAuthorization: config.samlAuthorization,
|
|
269
269
|
disableSaml: config.disableSaml,
|
|
270
|
+
retryUnauthorized: config.retryUnauthorized,
|
|
271
|
+
onUnauthorized: config.onUnauthorized,
|
|
270
272
|
// Prefer the shared server-wide semaphore when provided so all per-user PP clients
|
|
271
273
|
// share one cap. Fall back to a private semaphore for stdio/tests when only maxConcurrent
|
|
272
274
|
// is set. When neither is set, no concurrency cap applies.
|
|
@@ -465,6 +467,19 @@ export class AdtClient {
|
|
|
465
467
|
checkOperation(this.safety, OperationType.Read, 'GetFunction');
|
|
466
468
|
return this.fetchSource(`/sap/bc/adt/functions/groups/${encodeURIComponent(group)}/fmodules/${encodeURIComponent(name)}/source/main`, opts);
|
|
467
469
|
}
|
|
470
|
+
/**
|
|
471
|
+
* Read a function module's processing attributes (SE37 "Processing Type" + update-task kind).
|
|
472
|
+
* These live in the fmodule metadata document, NOT in /source/main where the signature lives.
|
|
473
|
+
*
|
|
474
|
+
* No explicit Accept: the resource's native version differs per release (7.50 serves
|
|
475
|
+
* …fmodules.v2+xml, 758 serves v3 — both live-verified), so discovery negotiation is correct
|
|
476
|
+
* where a hardcoded version would be an assumption.
|
|
477
|
+
*/
|
|
478
|
+
async getFunctionModuleProperties(group, name) {
|
|
479
|
+
checkOperation(this.safety, OperationType.Read, 'GetFunctionModuleProperties');
|
|
480
|
+
const url = `/sap/bc/adt/functions/groups/${encodeURIComponent(group.toLowerCase())}/fmodules/${encodeURIComponent(name.toLowerCase())}`;
|
|
481
|
+
return parseFunctionModuleProperties((await this.http.get(url)).body);
|
|
482
|
+
}
|
|
468
483
|
/** Resolve function group for a function module via quickSearch */
|
|
469
484
|
async resolveFunctionGroup(fmName) {
|
|
470
485
|
const results = await this.searchObject(fmName, 10);
|
|
@@ -482,10 +497,24 @@ export class AdtClient {
|
|
|
482
497
|
checkOperation(this.safety, OperationType.Read, 'GetFunctionGroup');
|
|
483
498
|
// The function-module list lives in the objectstructure resource, NOT the plain
|
|
484
499
|
// /functions/groups/<name> resource (which returns only metadata + atom links).
|
|
485
|
-
const
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
500
|
+
const accept = 'application/vnd.sap.adt.objectstructure.v2+xml';
|
|
501
|
+
try {
|
|
502
|
+
const resp = await this.http.get(`/sap/bc/adt/functions/groups/${encodeURIComponent(name)}/objectstructure`, {
|
|
503
|
+
Accept: accept,
|
|
504
|
+
});
|
|
505
|
+
return parseFunctionGroup(resp.body);
|
|
506
|
+
}
|
|
507
|
+
catch (err) {
|
|
508
|
+
// NW 7.50/7.51 don't ship the per-group objectstructure sub-resource (404 under every
|
|
509
|
+
// Accept), but the GENERIC repository resource works there and carries the same FF/I
|
|
510
|
+
// nodes in a flat projectexplorer shape. Note the LOWERCASE query params — objectName/
|
|
511
|
+
// objectType returns 400. Verified live on npl 7.50; §8.3 of the 2026-07-29 dossier.
|
|
512
|
+
if (!isNotFoundError(err))
|
|
513
|
+
throw err;
|
|
514
|
+
const fallback = await this.http.get(`/sap/bc/adt/repository/objectstructure?objectname=${encodeURIComponent(name)}&objecttype=${encodeURIComponent('FUGR/F')}`, { Accept: accept });
|
|
515
|
+
// The fallback payload does not carry the group name — pass it through.
|
|
516
|
+
return parseFunctionGroupNodes(fallback.body, name);
|
|
517
|
+
}
|
|
489
518
|
}
|
|
490
519
|
/** Get function group source code */
|
|
491
520
|
async getFunctionGroupSource(name, opts) {
|
|
@@ -1262,12 +1291,14 @@ export class AdtClient {
|
|
|
1262
1291
|
if (u && !u.includes('@'))
|
|
1263
1292
|
this.internalUser = u;
|
|
1264
1293
|
}
|
|
1265
|
-
/** Get system info as structured JSON (user, system details from discovery XML)
|
|
1294
|
+
/** Get system info as structured JSON (user, system details from discovery XML).
|
|
1295
|
+
* Compact: this string is returned verbatim to the LLM by SAPRead(type="SYSTEM"). Cannot use
|
|
1296
|
+
* handlers' toolJson() here — adt/ must not depend on handlers/. */
|
|
1266
1297
|
async getSystemInfo() {
|
|
1267
1298
|
checkOperation(this.safety, OperationType.Read, 'GetSystemInfo');
|
|
1268
1299
|
const resp = await this.http.get('/sap/bc/adt/core/discovery');
|
|
1269
1300
|
const info = parseSystemInfo(resp.body, await this.getEffectiveUser());
|
|
1270
|
-
return JSON.stringify(info
|
|
1301
|
+
return JSON.stringify(info);
|
|
1271
1302
|
}
|
|
1272
1303
|
/** Get installed SAP components */
|
|
1273
1304
|
async getInstalledComponents() {
|
|
@@ -1376,6 +1407,15 @@ export class AdtClient {
|
|
|
1376
1407
|
const resp = await this.http.get(`/sap/bc/adt/filestore/ui5-bsp/objects/${encodeURIComponent(objectPath)}/content`, { Accept: 'application/xml', 'Content-Type': 'application/octet-stream' });
|
|
1377
1408
|
return resp.body;
|
|
1378
1409
|
}
|
|
1410
|
+
/**
|
|
1411
|
+
* Raw object-root metadata at an explicit ADT URL (may carry `?version=…`).
|
|
1412
|
+
* Used by post-create metadata writes that must round-trip SAP's own envelope
|
|
1413
|
+
* instead of reconstructing a release-sensitive one.
|
|
1414
|
+
*/
|
|
1415
|
+
async getObjectMetadata(objectUrl) {
|
|
1416
|
+
checkOperation(this.safety, OperationType.Read, 'GetObjectMetadata');
|
|
1417
|
+
return this.http.get(objectUrl);
|
|
1418
|
+
}
|
|
1379
1419
|
/**
|
|
1380
1420
|
* Resolve the ABAP package of an existing object by fetching its metadata.
|
|
1381
1421
|
* Returns the package name (e.g., "$TMP", "ZPACKAGE") or empty string if not found.
|