arc-1 1.7.0 → 1.9.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 +4 -3
- package/dist/adt/aunit-package.d.ts.map +1 -1
- package/dist/adt/aunit-package.js +9 -1
- package/dist/adt/aunit-package.js.map +1 -1
- package/dist/adt/ci-quality.d.ts.map +1 -1
- package/dist/adt/ci-quality.js +1 -1
- package/dist/adt/ci-quality.js.map +1 -1
- package/dist/adt/client.d.ts +21 -5
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +14 -7
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/crud.d.ts +3 -2
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +13 -3
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/devtools.d.ts +13 -6
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +33 -9
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +2 -2
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/http-deadline.d.ts +2 -0
- package/dist/adt/http-deadline.d.ts.map +1 -1
- package/dist/adt/http-deadline.js.map +1 -1
- package/dist/adt/http.d.ts +5 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +27 -12
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/package-browser.d.ts +23 -0
- package/dist/adt/package-browser.d.ts.map +1 -0
- package/dist/adt/package-browser.js +139 -0
- package/dist/adt/package-browser.js.map +1 -0
- package/dist/adt/package-contents.d.ts +2 -0
- package/dist/adt/package-contents.d.ts.map +1 -1
- package/dist/adt/package-contents.js +3 -1
- package/dist/adt/package-contents.js.map +1 -1
- package/dist/adt/pinned-write-policy.d.ts +15 -0
- package/dist/adt/pinned-write-policy.d.ts.map +1 -0
- package/dist/adt/pinned-write-policy.js +111 -0
- package/dist/adt/pinned-write-policy.js.map +1 -0
- package/dist/adt/safety.d.ts +11 -0
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js +18 -2
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/table-settings.d.ts +3 -0
- package/dist/adt/table-settings.d.ts.map +1 -1
- package/dist/adt/table-settings.js +11 -1
- package/dist/adt/table-settings.js.map +1 -1
- package/dist/adt/transport-locks.d.ts +7 -0
- package/dist/adt/transport-locks.d.ts.map +1 -0
- package/dist/adt/transport-locks.js +56 -0
- package/dist/adt/transport-locks.js.map +1 -0
- package/dist/adt/transport.d.ts +4 -1
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +6 -44
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/user-agent.d.ts +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +2 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cli-ide.d.ts +11 -0
- package/dist/cli-ide.d.ts.map +1 -0
- package/dist/cli-ide.js +69 -0
- package/dist/cli-ide.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +3 -0
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +2 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +9 -3
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +5 -1
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +10 -2
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +6 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +31 -0
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tool-descriptions.js +2 -2
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +9 -4
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/write/pinned-activation.d.ts +8 -0
- package/dist/handlers/write/pinned-activation.d.ts.map +1 -0
- package/dist/handlers/write/pinned-activation.js +68 -0
- package/dist/handlers/write/pinned-activation.js.map +1 -0
- package/dist/handlers/write/pinned.d.ts +10 -0
- package/dist/handlers/write/pinned.d.ts.map +1 -0
- package/dist/handlers/write/pinned.js +202 -0
- package/dist/handlers/write/pinned.js.map +1 -0
- package/dist/handlers/write-helpers.d.ts +2 -2
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +8 -6
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +4 -1
- package/dist/handlers/write.js.map +1 -1
- package/dist/server/audit.d.ts +10 -1
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +45 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/destination-registry.d.ts +14 -0
- package/dist/server/destination-registry.d.ts.map +1 -1
- package/dist/server/destination-registry.js +43 -4
- package/dist/server/destination-registry.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +26 -5
- package/dist/server/http.js.map +1 -1
- package/dist/server/ide-links.d.ts +14 -0
- package/dist/server/ide-links.d.ts.map +1 -0
- package/dist/server/ide-links.js +146 -0
- package/dist/server/ide-links.js.map +1 -0
- package/dist/server/ide-request.d.ts +13 -0
- package/dist/server/ide-request.d.ts.map +1 -0
- package/dist/server/ide-request.js +14 -0
- package/dist/server/ide-request.js.map +1 -0
- package/dist/server/multi-target-authorization.d.ts +1 -1
- package/dist/server/multi-target-authorization.d.ts.map +1 -1
- package/dist/server/multi-target-authorization.js +5 -3
- package/dist/server/multi-target-authorization.js.map +1 -1
- package/dist/server/multi-target-catalog-enforced.d.ts +6 -1
- package/dist/server/multi-target-catalog-enforced.d.ts.map +1 -1
- package/dist/server/multi-target-catalog-enforced.js +3 -0
- package/dist/server/multi-target-catalog-enforced.js.map +1 -1
- package/dist/server/multi-target-catalog-projection.d.ts.map +1 -1
- package/dist/server/multi-target-catalog-projection.js +1 -0
- package/dist/server/multi-target-catalog-projection.js.map +1 -1
- package/dist/server/multi-target-catalog.d.ts.map +1 -1
- package/dist/server/multi-target-catalog.js +1 -0
- package/dist/server/multi-target-catalog.js.map +1 -1
- package/dist/server/multi-target-destination-config.d.ts +2 -0
- package/dist/server/multi-target-destination-config.d.ts.map +1 -1
- package/dist/server/multi-target-destination-config.js +18 -0
- package/dist/server/multi-target-destination-config.js.map +1 -1
- package/dist/server/multi-target-identity.d.ts.map +1 -1
- package/dist/server/multi-target-identity.js +4 -3
- package/dist/server/multi-target-identity.js.map +1 -1
- package/dist/server/multi-target-request-projection.d.ts +2 -0
- package/dist/server/multi-target-request-projection.d.ts.map +1 -1
- package/dist/server/multi-target-request-projection.js +2 -0
- package/dist/server/multi-target-request-projection.js.map +1 -1
- package/dist/server/multi-target-runtime.d.ts +5 -1
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +30 -3
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/multi-target-server.d.ts.map +1 -1
- package/dist/server/multi-target-server.js +42 -6
- package/dist/server/multi-target-server.js.map +1 -1
- package/dist/server/multi-target-tools.d.ts.map +1 -1
- package/dist/server/multi-target-tools.js +56 -0
- package/dist/server/multi-target-tools.js.map +1 -1
- package/dist/server/multi-target-write-surface.d.ts +9 -0
- package/dist/server/multi-target-write-surface.d.ts.map +1 -0
- package/dist/server/multi-target-write-surface.js +42 -0
- package/dist/server/multi-target-write-surface.js.map +1 -0
- package/dist/server/per-user-transport.d.ts +18 -0
- package/dist/server/per-user-transport.d.ts.map +1 -0
- package/dist/server/per-user-transport.js +72 -0
- package/dist/server/per-user-transport.js.map +1 -0
- package/dist/server/server-instructions.d.ts +2 -0
- package/dist/server/server-instructions.d.ts.map +1 -1
- package/dist/server/server-instructions.js +10 -12
- package/dist/server/server-instructions.js.map +1 -1
- package/dist/server/server.d.ts +3 -0
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +19 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +12 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +3 -0
- package/dist/server/types.js.map +1 -1
- package/dist/server/ui-state.d.ts.map +1 -1
- package/dist/server/ui-state.js +1 -0
- package/dist/server/ui-state.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -9,11 +9,15 @@ export const MULTI_TARGET_ARC_PROPERTIES = Object.freeze([
|
|
|
9
9
|
'arc1.allow_data_preview',
|
|
10
10
|
'arc1.allow_free_sql',
|
|
11
11
|
'arc1.target_alias',
|
|
12
|
+
'arc1.allow_writes',
|
|
13
|
+
'arc1.allowed_packages',
|
|
14
|
+
'arc1.allowed_transports',
|
|
12
15
|
]);
|
|
13
16
|
const SUPPORTED_ARC_PROPERTIES = new Set(MULTI_TARGET_ARC_PROPERTIES);
|
|
14
17
|
const WRITE_ARC_PROPERTIES = new Set([
|
|
15
18
|
'arc1.allow_writes',
|
|
16
19
|
'arc1.allowed_packages',
|
|
20
|
+
'arc1.allowed_transports',
|
|
17
21
|
'arc1.allow_transport_writes',
|
|
18
22
|
'arc1.allow_git_writes',
|
|
19
23
|
]);
|
|
@@ -34,4 +38,18 @@ export function parseDestinationBoolean(value) {
|
|
|
34
38
|
return false;
|
|
35
39
|
return undefined;
|
|
36
40
|
}
|
|
41
|
+
/** Explicit, bounded destination restrictions. Empty never means unrestricted here. */
|
|
42
|
+
export function parseDestinationAllowlist(value, kind) {
|
|
43
|
+
if (value === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (!value || value.length > 8192 || !/^[\x20-\x7e]*$/.test(value))
|
|
46
|
+
throw new Error('Invalid destination allowlist');
|
|
47
|
+
const entries = value.split(',').map((entry) => entry.trim().toUpperCase());
|
|
48
|
+
if (entries.length > 128 || entries.some((entry) => !entry || entry.length > 128))
|
|
49
|
+
throw new Error('Invalid destination allowlist');
|
|
50
|
+
const pattern = kind === 'packages' ? /^(?:\*|(?:\/[A-Z0-9_]+\/)?[A-Z$][A-Z0-9_$]*(?:\*|\/\*\*)?)$/ : /^(?:\*|[A-Z0-9]+\*?)$/;
|
|
51
|
+
if (entries.some((entry) => !pattern.test(entry)))
|
|
52
|
+
throw new Error('Invalid destination allowlist');
|
|
53
|
+
return Object.freeze([...new Set(entries)].sort());
|
|
54
|
+
}
|
|
37
55
|
//# sourceMappingURL=multi-target-destination-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-destination-config.js","sourceRoot":"","sources":["../../src/server/multi-target-destination-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,cAAc;IACd,yBAAyB;IACzB,qBAAqB;IACrB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"multi-target-destination-config.js","sourceRoot":"","sources":["../../src/server/multi-target-destination-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,cAAc;IACd,yBAAyB;IACzB,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,uBAAuB;IACvB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,mBAAmB;IACnB,uBAAuB;IACvB,yBAAyB;IACzB,6BAA6B;IAC7B,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC,CAAC,GAAW;IAC3D,OAAO,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACnD,OAAO,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,yBAAyB,CACvC,KAAyB,EACzB,IAA+B;IAE/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,MAAM,OAAO,GACX,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAChH,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-identity.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-identity.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,eAAO,MAAM,iBAAiB,QAAuB,CAAC;AACtD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,sFAAsF;AACtF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"multi-target-identity.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-identity.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,eAAO,MAAM,iBAAiB,QAAuB,CAAC;AACtD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,sFAAsF;AACtF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAShE;AAKD,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,2BAA2B,QAAkD,CAAC;AAC3F,eAAO,MAAM,iBAAiB,QAA2D,CAAC;AAC1F,eAAO,MAAM,uBAAuB,QAAoE,CAAC;AACzG,eAAO,MAAM,qCAAqC,QAEjD,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE"}
|
|
@@ -3,11 +3,12 @@ export const SAP_SYSID_PATTERN = /^[A-Z][A-Z0-9]{2}$/;
|
|
|
3
3
|
export const MULTI_TARGET_MAX = 256;
|
|
4
4
|
/** Display labels only: never use normalization to validate a connection or grant. */
|
|
5
5
|
export function normalizeTargetDisplayText(value) {
|
|
6
|
-
return value
|
|
6
|
+
return (value
|
|
7
7
|
.normalize('NFKC')
|
|
8
|
-
|
|
8
|
+
// Lone surrogates expand to six characters in JSON labels; valid pairs stay intact.
|
|
9
|
+
.replace(/[\p{Cc}\p{Cf}\p{Cs}]/gu, ' ')
|
|
9
10
|
.replace(/\s+/g, ' ')
|
|
10
|
-
.trim();
|
|
11
|
+
.trim());
|
|
11
12
|
}
|
|
12
13
|
// A route alias is useful when separate SAP systems reuse the same SID and client.
|
|
13
14
|
// Keep it URL-friendly, case-sensitive, and bounded: 3-32 characters, with no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-identity.js","sourceRoot":"","sources":["../../src/server/multi-target-identity.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,sFAAsF;AACtF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,KAAK;
|
|
1
|
+
{"version":3,"file":"multi-target-identity.js","sourceRoot":"","sources":["../../src/server/multi-target-identity.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,sFAAsF;AACtF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,CACL,KAAK;SACF,SAAS,CAAC,MAAM,CAAC;QAClB,oFAAoF;SACnF,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC;SACtC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CACV,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,8EAA8E;AAC9E,kFAAkF;AAClF,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,MAAM,CAAC,IAAI,4BAA4B,GAAG,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,IAAI,4BAA4B,YAAY,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,MAAM,4BAA4B,mBAAmB,CAAC,CAAC;AACzG,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,MAAM,CAC7D,6CAA6C,4BAA4B,mBAAmB,CAC7F,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,KAAc;IACvE,OAAO,GAAG,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
|
|
@@ -4,6 +4,8 @@ import type { DestinationRegistry, TargetDescriptor } from './destination-regist
|
|
|
4
4
|
import { type TargetGrant } from './multi-target-authorization.js';
|
|
5
5
|
export interface MultiTargetRequestProjection {
|
|
6
6
|
readonly grant: TargetGrant;
|
|
7
|
+
readonly writeGrant: TargetGrant;
|
|
8
|
+
readonly write: boolean;
|
|
7
9
|
readonly targets: readonly TargetDescriptor[];
|
|
8
10
|
readonly scopes: readonly string[];
|
|
9
11
|
readonly read: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-request-projection.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-request-projection.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE5G,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,CAAC,EAAE,QAAQ,GAClB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"multi-target-request-projection.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-request-projection.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE5G,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,CAAC,EAAE,QAAQ,GAClB,4BAA4B,CAc9B"}
|
|
@@ -7,6 +7,8 @@ export function projectMultiTargetRequest(registry, authInfo) {
|
|
|
7
7
|
const grant = parseTargetGrant(authInfo);
|
|
8
8
|
return Object.freeze({
|
|
9
9
|
grant,
|
|
10
|
+
writeGrant: parseTargetGrant(authInfo, 'arc1_write_targets'),
|
|
11
|
+
write: Array.isArray(authInfo?.extra?.arc1VerifiedRawScopes) && authInfo.extra.arc1VerifiedRawScopes.includes('write'),
|
|
10
12
|
scopes: Object.freeze(scopes),
|
|
11
13
|
read,
|
|
12
14
|
admin: read && hasRequiredScope(scopes, 'admin'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-request-projection.js","sourceRoot":"","sources":["../../src/server/multi-target-request-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-request-projection.js","sourceRoot":"","sources":["../../src/server/multi-target-request-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,iCAAiC,CAAC;AAY5G,yFAAyF;AACzF,MAAM,UAAU,yBAAyB,CACvC,QAA6B,EAC7B,QAAmB;IAEnB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK;QACL,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QAC5D,KAAK,EACH,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACjH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI;QACJ,KAAK,EAAE,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;QAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KACzG,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** Per-target configuration construction and uncached Destination drift validation. */
|
|
2
2
|
import type { Destination } from '@arc-mcp/xsuaa-auth/btp';
|
|
3
3
|
import { type TargetDescriptor } from './destination-registry.js';
|
|
4
|
+
import type { MultiTargetRequestProjection } from './multi-target-request-projection.js';
|
|
4
5
|
import type { ServerConfig } from './types.js';
|
|
5
6
|
/** Build the isolated runtime for one discovered target. */
|
|
6
|
-
export declare function buildMultiTargetConfig(base: ServerConfig, target: TargetDescriptor
|
|
7
|
+
export declare function buildMultiTargetConfig(base: ServerConfig, target: TargetDescriptor, access: {
|
|
8
|
+
mode: 'pinned' | 'aggregate';
|
|
9
|
+
authorization?: MultiTargetRequestProjection;
|
|
10
|
+
}): ServerConfig;
|
|
7
11
|
/**
|
|
8
12
|
* Build only the union needed to advertise the aggregate tools/list surface.
|
|
9
13
|
* Every tool call replaces this with buildMultiTargetConfig for its selected target.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-runtime.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-runtime.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAuF/C,4DAA4D;AAC5D,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,4BAA4B,CAAA;CAAE,GACrF,YAAY,CAyBd;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,YAAY,CAWd;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH,qBAAa,wBAAyB,SAAQ,KAAK;IAI/C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,IAAI,2BAA2B;IAExC,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAUD,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,YAAY,GACjB,WAAW,CAQb"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Per-target configuration construction and uncached Destination drift validation. */
|
|
2
2
|
import { canonicalDestinationUrl, projectMultiTargetDestination } from './destination-discovery.js';
|
|
3
3
|
import { evaluateStandaloneTargetDescriptor, multiTargetSafety, targetSafety, } from './destination-registry.js';
|
|
4
|
+
import { isTargetGranted } from './multi-target-authorization.js';
|
|
4
5
|
import { DEFAULT_CONFIG } from './types.js';
|
|
5
6
|
/**
|
|
6
7
|
* Build from safe defaults plus an explicit instance allowlist.
|
|
@@ -23,6 +24,9 @@ function buildReadOnlyRuntimeConfig(base, safety, target) {
|
|
|
23
24
|
gzipDataPreviewBody: base.gzipDataPreviewBody,
|
|
24
25
|
userAgent: base.userAgent,
|
|
25
26
|
transport: 'http-streamable',
|
|
27
|
+
// Only the administrator ceiling; every caller must opt in to Eclipse links on each request.
|
|
28
|
+
ideLinks: base.ideLinks,
|
|
29
|
+
ideSystemId: target?.sid ?? '',
|
|
26
30
|
httpAddr: base.httpAddr,
|
|
27
31
|
allowWrites: safety.allowWrites,
|
|
28
32
|
allowDataPreview: safety.allowDataPreview,
|
|
@@ -58,7 +62,8 @@ function buildReadOnlyRuntimeConfig(base, safety, target) {
|
|
|
58
62
|
allowPluginExecute: false,
|
|
59
63
|
allowPluginRawWrites: false,
|
|
60
64
|
lintBeforeWrite: base.lintBeforeWrite,
|
|
61
|
-
checkBeforeWrite:
|
|
65
|
+
checkBeforeWrite: base.checkBeforeWrite,
|
|
66
|
+
abaplintConfig: base.abaplintConfig,
|
|
62
67
|
cacheMode: 'none',
|
|
63
68
|
maxConcurrent: base.maxConcurrent,
|
|
64
69
|
maxDataPreviewResponseBytes: base.maxDataPreviewResponseBytes,
|
|
@@ -78,8 +83,30 @@ function buildReadOnlyRuntimeConfig(base, safety, target) {
|
|
|
78
83
|
};
|
|
79
84
|
}
|
|
80
85
|
/** Build the isolated runtime for one discovered target. */
|
|
81
|
-
export function buildMultiTargetConfig(base, target) {
|
|
82
|
-
|
|
86
|
+
export function buildMultiTargetConfig(base, target, access) {
|
|
87
|
+
const authorization = access.authorization;
|
|
88
|
+
const enabled = access.mode === 'pinned' &&
|
|
89
|
+
base.allowWrites &&
|
|
90
|
+
base.multiTargetAuthorization === 'xsuaa-attribute' &&
|
|
91
|
+
target.authentication === 'PrincipalPropagation' &&
|
|
92
|
+
target.writePolicy?.allowWrites === true &&
|
|
93
|
+
!!authorization?.read &&
|
|
94
|
+
!!authorization.write &&
|
|
95
|
+
isTargetGranted(authorization.grant, target.target) &&
|
|
96
|
+
isTargetGranted(authorization.writeGrant, target.target);
|
|
97
|
+
return {
|
|
98
|
+
...buildReadOnlyRuntimeConfig(base, targetSafety(target, base.blockedDataSources), target),
|
|
99
|
+
allowWrites: enabled,
|
|
100
|
+
allowedPackages: [...base.allowedPackages],
|
|
101
|
+
allowedTransports: [], // Preserve multi-target transport reads; write policy carries the server ceiling.
|
|
102
|
+
multiTargetWrite: Object.freeze({
|
|
103
|
+
target: target.target,
|
|
104
|
+
enabled,
|
|
105
|
+
allowedPackages: target.writePolicy?.allowedPackages ?? Object.freeze([]),
|
|
106
|
+
allowedTransports: target.writePolicy?.allowedTransports ?? Object.freeze([]),
|
|
107
|
+
serverAllowedTransports: Object.freeze([...base.allowedTransports]),
|
|
108
|
+
}),
|
|
109
|
+
};
|
|
83
110
|
}
|
|
84
111
|
/**
|
|
85
112
|
* Build only the union needed to advertise the aggregate tools/list surface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-runtime.js","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EACL,kCAAkC,EAClC,iBAAiB,EAEjB,YAAY,GACb,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-runtime.js","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-server.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-server.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAK/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAU1D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-server.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import { buildTargetCatalog, TARGET_CATALOG_MAX_OFFSET, TARGET_CATALOG_MAX_QUERY
|
|
|
11
11
|
import { buildEnforcedTargetCatalogResult } from './multi-target-catalog-enforced.js';
|
|
12
12
|
import { buildMultiTargetConfig } from './multi-target-runtime.js';
|
|
13
13
|
import { multiTargetInvocationDecision, normalizeTarget } from './multi-target-tools.js';
|
|
14
|
+
import { pinnedWriteEnabled } from './multi-target-write-surface.js';
|
|
15
|
+
import { NATIVE_NAVIGATION_INSTRUCTIONS } from './server-instructions.js';
|
|
14
16
|
export const MULTI_TARGET_SERVER_INSTRUCTIONS = [
|
|
15
17
|
'ARC-1 provides a read-only interface to configured SAP ABAP system/client targets.',
|
|
16
18
|
'Every aggregate tool call requires an explicit target ID from SAPTargets. Never assume, remember,',
|
|
@@ -21,7 +23,8 @@ export const MULTI_TARGET_SERVER_INSTRUCTIONS = [
|
|
|
21
23
|
'the same destination technical user. Never infer per-user SAP access for a shared target.',
|
|
22
24
|
'Data preview and SQL are available only where the instance, destination, user scope, and SAP all allow them.',
|
|
23
25
|
'Offline SAPLint, read-only transport inspection, ATC, and ABAP Unit are available; ATC and Unit execute SAP workloads.',
|
|
24
|
-
'Writes, activation, transport/Git mutations, and SAP-backed formatter actions are unavailable
|
|
26
|
+
'Writes, activation, transport/Git mutations, and SAP-backed formatter actions are unavailable on this aggregate connection.',
|
|
27
|
+
NATIVE_NAVIGATION_INSTRUCTIONS,
|
|
25
28
|
].join('\n');
|
|
26
29
|
export function buildMultiTargetServerInstructions(options) {
|
|
27
30
|
if (options.instanceConfig.multiTargetAuthorization === 'xsuaa-attribute') {
|
|
@@ -51,14 +54,23 @@ export function buildMultiTargetServerInstructions(options) {
|
|
|
51
54
|
'Data preview and SQL require instance, destination, XSUAA scope, and SAP authorization consent.',
|
|
52
55
|
'Offline SAPLint, read-only transport inspection, ATC, and ABAP Unit are available; ATC and Unit run as the shared SAP user.',
|
|
53
56
|
'Writes, activation, transport/Git mutations, and SAP-backed formatter actions are unavailable.',
|
|
57
|
+
NATIVE_NAVIGATION_INSTRUCTIONS,
|
|
54
58
|
].join('\n');
|
|
55
59
|
}
|
|
60
|
+
const writable = options.target &&
|
|
61
|
+
pinnedWriteEnabled(buildMultiTargetConfig(options.instanceConfig, options.target, {
|
|
62
|
+
mode: options.mode,
|
|
63
|
+
authorization: options.authorization,
|
|
64
|
+
}));
|
|
56
65
|
return [
|
|
57
|
-
`ARC-1 provides a read-only interface to SAP target ${options.target?.target ?? 'the configured target'}.`,
|
|
66
|
+
`ARC-1 provides a ${writable ? 'scoped read/write' : 'read-only'} interface to SAP target ${options.target?.target ?? 'the configured target'}.`,
|
|
58
67
|
'Principal Propagation sends each authenticated caller to SAP as their mapped SAP user.',
|
|
59
68
|
'Data preview and SQL require instance, destination, XSUAA scope, and SAP authorization consent.',
|
|
60
69
|
'Offline SAPLint, read-only transport inspection, ATC, and ABAP Unit are available; ATC and Unit execute SAP workloads.',
|
|
61
|
-
|
|
70
|
+
writable
|
|
71
|
+
? 'CLAS/INTF main-source writes require both package policies; updates require an editable source hash. Activation affects the whole owner and its existing inactive drafts. Transport/Git management and all other mutations remain unavailable.'
|
|
72
|
+
: 'Writes, activation, transport/Git mutations, and SAP-backed formatter actions are unavailable.',
|
|
73
|
+
NATIVE_NAVIGATION_INSTRUCTIONS,
|
|
62
74
|
].join('\n');
|
|
63
75
|
}
|
|
64
76
|
export function structuredToolError(code, message, extra = {}) {
|
|
@@ -176,6 +188,25 @@ async function handleSapTargets(options, args, authInfo, requestId, mcpRateLimit
|
|
|
176
188
|
const result = buildEnforcedTargetCatalogResult(options.registry, {
|
|
177
189
|
admin: adminView,
|
|
178
190
|
query: parsed.value.query,
|
|
191
|
+
pinnedWrite: (target) => {
|
|
192
|
+
const projection = options.authorization;
|
|
193
|
+
const reason = target.identity !== 'per-user'
|
|
194
|
+
? 'PP_REQUIRED'
|
|
195
|
+
: !options.instanceConfig.allowWrites
|
|
196
|
+
? 'GLOBAL_WRITES_DISABLED'
|
|
197
|
+
: !target.writePolicy?.allowWrites
|
|
198
|
+
? 'DESTINATION_WRITES_DISABLED'
|
|
199
|
+
: !isTargetGranted(projection.grant, target.target)
|
|
200
|
+
? 'TARGET_ACCESS_REQUIRED'
|
|
201
|
+
: !projection.write
|
|
202
|
+
? 'RAW_WRITE_SCOPE_REQUIRED'
|
|
203
|
+
: projection.writeGrant.status !== 'valid'
|
|
204
|
+
? `WRITE_${projection.writeGrant.status}`
|
|
205
|
+
: !isTargetGranted(projection.writeGrant, target.target)
|
|
206
|
+
? 'EXACT_WRITE_GRANT_REQUIRED'
|
|
207
|
+
: 'ENABLED_ON_PINNED_URL';
|
|
208
|
+
return { enabled: reason === 'ENABLED_ON_PINNED_URL', reason };
|
|
209
|
+
},
|
|
179
210
|
runtimeAuth: adminView && sharedAuthState ? (target) => sharedAuthState.getHealth(target) : undefined,
|
|
180
211
|
enforcement: {
|
|
181
212
|
allowsTarget: (target) => isTargetGranted(grant, target),
|
|
@@ -444,7 +475,12 @@ export async function prepareMultiTargetCall(args) {
|
|
|
444
475
|
// Use the same canonical arguments as the shared dispatch pipeline. This keeps
|
|
445
476
|
// the early policy/PP gate and the eventual handler decision identical.
|
|
446
477
|
callArgs = normalizeTypeArgsForValidation(toolName, callArgs);
|
|
447
|
-
|
|
478
|
+
if (toolName === 'SAPActivate' && callArgs.action === undefined)
|
|
479
|
+
callArgs = { ...callArgs, action: 'activate' };
|
|
480
|
+
const activeConfig = buildMultiTargetConfig(options.instanceConfig, selectedTarget, {
|
|
481
|
+
mode: options.mode,
|
|
482
|
+
authorization: projection,
|
|
483
|
+
});
|
|
448
484
|
const action = invocationPolicyKey(toolName, callArgs);
|
|
449
485
|
const invocationDecision = multiTargetInvocationDecision(toolName, callArgs, activeConfig);
|
|
450
486
|
if (invocationDecision === 'forbidden') {
|
|
@@ -458,11 +494,11 @@ export async function prepareMultiTargetCall(args) {
|
|
|
458
494
|
target: selectedTarget.target,
|
|
459
495
|
identity: selectedTarget.identity,
|
|
460
496
|
operation: action ? `${toolName}.${action}` : toolName,
|
|
461
|
-
reason: 'Operation unavailable
|
|
497
|
+
reason: 'Operation unavailable for this multi-target route and caller policy',
|
|
462
498
|
});
|
|
463
499
|
return {
|
|
464
500
|
handled: true,
|
|
465
|
-
result: error('MULTI_TARGET_OPERATION_FORBIDDEN', 'This tool or operation is not
|
|
501
|
+
result: error('MULTI_TARGET_OPERATION_FORBIDDEN', 'This tool, input, or operation is not enabled for this multi-target connection.'),
|
|
466
502
|
};
|
|
467
503
|
}
|
|
468
504
|
const actionPolicy = getActionPolicy(toolName, action);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-server.js","sourceRoot":"","sources":["../../src/server/multi-target-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-target-server.js","sourceRoot":"","sources":["../../src/server/multi-target-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-tools.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAKnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-tools.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAKnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAUlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB,aAS7B,CAAC;AAuEH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,GACnB,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,GACnB,SAAS,GAAG,sBAAsB,GAAG,WAAW,CAelD;AA8FD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,EAAE,CAE1G;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,cAAc,CAY7G;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,UAAQ,GAAG,cAAc,CA+BrE;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAehE"}
|
|
@@ -4,6 +4,7 @@ import { getActionPolicy, invocationPolicyKey } from '../authz/policy.js';
|
|
|
4
4
|
import { pruneQueryDefinition } from '../handlers/query-tool.js';
|
|
5
5
|
import { TARGET_CATALOG_MAX_OFFSET, TARGET_CATALOG_MAX_QUERY_LENGTH } from './multi-target-catalog.js';
|
|
6
6
|
import { TARGET_ID_PATTERN } from './multi-target-identity.js';
|
|
7
|
+
import { PINNED_ACTIVATE_FIELDS, PINNED_WRITE_ACTIONS, PINNED_WRITE_FIELDS, pinnedMutationAllowed, pinnedWriteEnabled, } from './multi-target-write-surface.js';
|
|
7
8
|
export const MULTI_TARGET_TOOLS = new Set([
|
|
8
9
|
'SAPRead',
|
|
9
10
|
'SAPSearch',
|
|
@@ -82,6 +83,8 @@ export function isMultiTargetInvocationAllowed(toolName, args, config) {
|
|
|
82
83
|
return multiTargetInvocationDecision(toolName, args, config) === 'allowed';
|
|
83
84
|
}
|
|
84
85
|
export function multiTargetInvocationDecision(toolName, args, config) {
|
|
86
|
+
if (toolName === 'SAPWrite' || toolName === 'SAPActivate')
|
|
87
|
+
return pinnedMutationAllowed(toolName, args, config) ? 'allowed' : 'forbidden';
|
|
85
88
|
if (!MULTI_TARGET_TOOLS.has(toolName))
|
|
86
89
|
return 'forbidden';
|
|
87
90
|
const action = invocationPolicyKey(toolName, args);
|
|
@@ -101,6 +104,59 @@ export function multiTargetInvocationDecision(toolName, args, config) {
|
|
|
101
104
|
return 'forbidden';
|
|
102
105
|
}
|
|
103
106
|
function pruneDefinition(tool, config) {
|
|
107
|
+
if (tool.name === 'SAPWrite' || tool.name === 'SAPActivate') {
|
|
108
|
+
if (!pinnedWriteEnabled(config))
|
|
109
|
+
return undefined;
|
|
110
|
+
const write = tool.name === 'SAPWrite';
|
|
111
|
+
const fields = write ? PINNED_WRITE_FIELDS : PINNED_ACTIVATE_FIELDS;
|
|
112
|
+
const properties = Object.fromEntries(Object.entries(tool.inputSchema.properties).filter(([key]) => fields.has(key)));
|
|
113
|
+
return {
|
|
114
|
+
...tool,
|
|
115
|
+
description: write
|
|
116
|
+
? 'Create CLAS/INTF or update their main source on this pinned PP target. edit_method supports existing CLAS main methods. Updates require expectedSourceHash from SAPRead(format="editable"). Destination and server package/transport restrictions both apply. Saves remain inactive; SAPActivate activates the complete owner, including existing inactive includes.'
|
|
117
|
+
: 'Activate one CLAS/INTF owner on this pinned PP target, including ALL its existing inactive drafts and includes. Additional owners are refused. This is not method-only activation.',
|
|
118
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
|
|
119
|
+
inputSchema: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
properties: {
|
|
122
|
+
...properties,
|
|
123
|
+
...(write
|
|
124
|
+
? {
|
|
125
|
+
name: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
description: 'Uppercase CLAS/INTF owner name, at most 30 characters; optional registered namespace.',
|
|
128
|
+
},
|
|
129
|
+
source: {
|
|
130
|
+
type: 'string',
|
|
131
|
+
description: 'Complete CLAS/INTF main source for create/update; an existing main method body or complete METHOD…ENDMETHOD block for edit_method.',
|
|
132
|
+
},
|
|
133
|
+
package: {
|
|
134
|
+
type: 'string',
|
|
135
|
+
description: 'Required explicit package for create. Must match both server and destination policies. Omit for updates.',
|
|
136
|
+
},
|
|
137
|
+
transport: {
|
|
138
|
+
type: 'string',
|
|
139
|
+
description: 'Required allowed Workbench request/task for transportable create. Existing objects may reuse their proven request. Omit for local objects; manage requests outside this connection.',
|
|
140
|
+
},
|
|
141
|
+
expectedSourceHash: {
|
|
142
|
+
type: 'string',
|
|
143
|
+
pattern: '^[a-f0-9]{64}$',
|
|
144
|
+
description: 'Required for update/edit_method: SHA-256 from SAPRead(format="editable") on this owner main source. Omit for create.',
|
|
145
|
+
},
|
|
146
|
+
method: {
|
|
147
|
+
type: 'string',
|
|
148
|
+
description: 'Existing CLAS main-source method name, only for edit_method. Local-class/include methods are unavailable.',
|
|
149
|
+
},
|
|
150
|
+
}
|
|
151
|
+
: {}),
|
|
152
|
+
type: { type: 'string', enum: ['CLAS', 'INTF'] },
|
|
153
|
+
action: { type: 'string', enum: write ? [...PINNED_WRITE_ACTIONS] : ['activate'] },
|
|
154
|
+
},
|
|
155
|
+
required: write ? ['action', 'type', 'name', 'source'] : ['type', 'name'],
|
|
156
|
+
additionalProperties: false,
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
}
|
|
104
160
|
if (!MULTI_TARGET_TOOLS.has(tool.name))
|
|
105
161
|
return undefined;
|
|
106
162
|
const schema = tool.inputSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-tools.js","sourceRoot":"","sources":["../../src/server/multi-target-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-target-tools.js","sourceRoot":"","sources":["../../src/server/multi-target-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Reviewed mutation surface; independent of tool advertisement and general single-target schemas. */
|
|
2
|
+
import type { ServerConfig } from './types.js';
|
|
3
|
+
export declare const PINNED_WRITE_ACTIONS: readonly ['create', 'update', 'edit_method'];
|
|
4
|
+
export declare const PINNED_WRITE_FIELDS: Set<string>;
|
|
5
|
+
export declare const PINNED_ACTIVATE_FIELDS: Set<string>;
|
|
6
|
+
export declare function pinnedWriteEnabled(config: ServerConfig): boolean;
|
|
7
|
+
/** Called on normalized arguments before Destination lookup. Schema construction may omit type/name. */
|
|
8
|
+
export declare function pinnedMutationAllowed(tool: string, args: Record<string, unknown>, config: ServerConfig): boolean;
|
|
9
|
+
//# sourceMappingURL=multi-target-write-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-target-write-surface.d.ts","sourceRoot":"","sources":["../../src/server/multi-target-write-surface.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,oBAAoB,YAAI,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAC;AACjF,eAAO,MAAM,mBAAmB,aAU9B,CAAC;AACH,eAAO,MAAM,sBAAsB,aAAsC,CAAC;AAE1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAgBhH"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const PINNED_WRITE_ACTIONS = ['create', 'update', 'edit_method'];
|
|
2
|
+
export const PINNED_WRITE_FIELDS = new Set([
|
|
3
|
+
'action',
|
|
4
|
+
'type',
|
|
5
|
+
'name',
|
|
6
|
+
'source',
|
|
7
|
+
'package',
|
|
8
|
+
'description',
|
|
9
|
+
'transport',
|
|
10
|
+
'method',
|
|
11
|
+
'expectedSourceHash',
|
|
12
|
+
]);
|
|
13
|
+
export const PINNED_ACTIVATE_FIELDS = new Set(['action', 'type', 'name']);
|
|
14
|
+
export function pinnedWriteEnabled(config) {
|
|
15
|
+
return config.allowWrites && config.multiTargetWrite?.enabled === true && config.ppEnabled && config.ppStrict;
|
|
16
|
+
}
|
|
17
|
+
/** Called on normalized arguments before Destination lookup. Schema construction may omit type/name. */
|
|
18
|
+
export function pinnedMutationAllowed(tool, args, config) {
|
|
19
|
+
if (!pinnedWriteEnabled(config))
|
|
20
|
+
return false;
|
|
21
|
+
const type = args.type;
|
|
22
|
+
if (type !== undefined && type !== 'CLAS' && type !== 'INTF')
|
|
23
|
+
return false;
|
|
24
|
+
const action = args.action ?? (tool === 'SAPActivate' ? 'activate' : undefined);
|
|
25
|
+
const fields = tool === 'SAPActivate' ? PINNED_ACTIVATE_FIELDS : PINNED_WRITE_FIELDS;
|
|
26
|
+
if (Object.entries(args).some(([key, value]) => value !== undefined && !fields.has(key)))
|
|
27
|
+
return false;
|
|
28
|
+
if (tool === 'SAPActivate')
|
|
29
|
+
return action === 'activate';
|
|
30
|
+
if (tool !== 'SAPWrite' || !PINNED_WRITE_ACTIONS.includes(action))
|
|
31
|
+
return false;
|
|
32
|
+
if (action !== 'create' && (args.package !== undefined || args.description !== undefined))
|
|
33
|
+
return false;
|
|
34
|
+
if (action === 'create' && (args.method !== undefined || args.expectedSourceHash !== undefined))
|
|
35
|
+
return false;
|
|
36
|
+
if (action !== 'edit_method' && args.method !== undefined)
|
|
37
|
+
return false;
|
|
38
|
+
if (action === 'edit_method' && (type === 'INTF' || /^(?:lhc_|lcl_|ltc_)/i.test(String(args.method ?? ''))))
|
|
39
|
+
return false;
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=multi-target-write-surface.js.map
|