arc-1 1.1.2 → 1.3.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 +16 -6
- package/bin/start-cf.sh +32 -0
- package/dist/adt/atc-batch.d.ts +71 -0
- package/dist/adt/atc-batch.d.ts.map +1 -0
- package/dist/adt/atc-batch.js +182 -0
- package/dist/adt/atc-batch.js.map +1 -0
- package/dist/adt/atc.d.ts +34 -0
- package/dist/adt/atc.d.ts.map +1 -1
- package/dist/adt/atc.js +58 -12
- package/dist/adt/atc.js.map +1 -1
- package/dist/adt/aunit.d.ts.map +1 -1
- package/dist/adt/aunit.js +50 -7
- package/dist/adt/aunit.js.map +1 -1
- package/dist/adt/bounded-response.d.ts +12 -0
- package/dist/adt/bounded-response.d.ts.map +1 -0
- package/dist/adt/bounded-response.js +242 -0
- package/dist/adt/bounded-response.js.map +1 -0
- package/dist/adt/ci-quality-xml.d.ts +44 -0
- package/dist/adt/ci-quality-xml.d.ts.map +1 -0
- package/dist/adt/ci-quality-xml.js +98 -0
- package/dist/adt/ci-quality-xml.js.map +1 -0
- package/dist/adt/ci-quality.d.ts +64 -0
- package/dist/adt/ci-quality.d.ts.map +1 -0
- package/dist/adt/ci-quality.js +132 -0
- package/dist/adt/ci-quality.js.map +1 -0
- package/dist/adt/client.d.ts +55 -34
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +130 -169
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +6 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +3 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/data-result-context.d.ts +46 -0
- package/dist/adt/data-result-context.d.ts.map +1 -0
- package/dist/adt/data-result-context.js +118 -0
- package/dist/adt/data-result-context.js.map +1 -0
- package/dist/adt/data-source-name.d.ts +60 -0
- package/dist/adt/data-source-name.d.ts.map +1 -0
- package/dist/adt/data-source-name.js +156 -0
- package/dist/adt/data-source-name.js.map +1 -0
- package/dist/adt/data-source-policy.d.ts +139 -0
- package/dist/adt/data-source-policy.d.ts.map +1 -0
- package/dist/adt/data-source-policy.js +759 -0
- package/dist/adt/data-source-policy.js.map +1 -0
- package/dist/adt/ddic-xml.d.ts +78 -4
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +647 -54
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +1 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +24 -4
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/errors.d.ts +10 -0
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +17 -0
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/http-deadline.d.ts +10 -0
- package/dist/adt/http-deadline.d.ts.map +1 -1
- package/dist/adt/http-deadline.js +7 -0
- package/dist/adt/http-deadline.js.map +1 -1
- package/dist/adt/http.d.ts +6 -3
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +94 -55
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/internal-data-operations.d.ts +56 -0
- package/dist/adt/internal-data-operations.d.ts.map +1 -0
- package/dist/adt/internal-data-operations.js +99 -0
- package/dist/adt/internal-data-operations.js.map +1 -0
- package/dist/adt/package-contents.d.ts +12 -0
- package/dist/adt/package-contents.d.ts.map +1 -0
- package/dist/adt/package-contents.js +19 -0
- package/dist/adt/package-contents.js.map +1 -0
- package/dist/adt/relation-objects.d.ts +385 -0
- package/dist/adt/relation-objects.d.ts.map +1 -0
- package/dist/adt/relation-objects.js +262 -0
- package/dist/adt/relation-objects.js.map +1 -0
- package/dist/adt/repository-relations.d.ts +41 -0
- package/dist/adt/repository-relations.d.ts.map +1 -0
- package/dist/adt/repository-relations.js +246 -0
- package/dist/adt/repository-relations.js.map +1 -0
- package/dist/adt/request-attempt-budget.d.ts +26 -0
- package/dist/adt/request-attempt-budget.d.ts.map +1 -0
- package/dist/adt/request-attempt-budget.js +63 -0
- package/dist/adt/request-attempt-budget.js.map +1 -0
- package/dist/adt/result-limits.d.ts +3 -0
- package/dist/adt/result-limits.d.ts.map +1 -0
- package/dist/adt/result-limits.js +7 -0
- package/dist/adt/result-limits.js.map +1 -0
- package/dist/adt/safety.d.ts +2 -0
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js +6 -0
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/server-driven.d.ts +6 -1
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +24 -20
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/sql-source-analyzer.d.ts +12 -0
- package/dist/adt/sql-source-analyzer.d.ts.map +1 -0
- package/dist/adt/sql-source-analyzer.js +158 -0
- package/dist/adt/sql-source-analyzer.js.map +1 -0
- package/dist/adt/table-query.d.ts +43 -0
- package/dist/adt/table-query.d.ts.map +1 -0
- package/dist/adt/table-query.js +160 -0
- package/dist/adt/table-query.js.map +1 -0
- package/dist/adt/text-elements.d.ts +48 -0
- package/dist/adt/text-elements.d.ts.map +1 -0
- package/dist/adt/text-elements.js +116 -0
- package/dist/adt/text-elements.js.map +1 -0
- package/dist/adt/types.d.ts +16 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/uiad.d.ts +19 -0
- package/dist/adt/uiad.d.ts.map +1 -0
- package/dist/adt/uiad.js +173 -0
- package/dist/adt/uiad.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +12 -15
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +44 -12
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +4 -1
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +3 -23
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +2 -3
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +6 -25
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +3 -45
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/memory.d.ts +1 -4
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +1 -10
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +1 -3
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +2 -17
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli-checks.d.ts +3 -0
- package/dist/cli-checks.d.ts.map +1 -1
- package/dist/cli-checks.js +16 -0
- package/dist/cli-checks.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -2
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.d.ts +2 -3
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +30 -49
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/contract.d.ts +5 -0
- package/dist/context/contract.d.ts.map +1 -1
- package/dist/context/contract.js +2 -2
- package/dist/context/contract.js.map +1 -1
- package/dist/context/deps.d.ts +11 -0
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js +2 -2
- package/dist/context/deps.js.map +1 -1
- package/dist/context/parse-cache.d.ts +23 -0
- package/dist/context/parse-cache.d.ts.map +1 -0
- package/dist/context/parse-cache.js +71 -0
- package/dist/context/parse-cache.js.map +1 -0
- package/dist/context/relation-walk.d.ts +48 -0
- package/dist/context/relation-walk.d.ts.map +1 -0
- package/dist/context/relation-walk.js +137 -0
- package/dist/context/relation-walk.js.map +1 -0
- package/dist/context/types.d.ts +4 -4
- package/dist/context/types.d.ts.map +1 -1
- package/dist/handlers/activate.d.ts +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +33 -56
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/activation-results.d.ts +3 -0
- package/dist/handlers/activation-results.d.ts.map +1 -0
- package/dist/handlers/activation-results.js +8 -0
- package/dist/handlers/activation-results.js.map +1 -0
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +8 -32
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/data-element-fields.d.ts +26 -0
- package/dist/handlers/data-element-fields.d.ts.map +1 -0
- package/dist/handlers/data-element-fields.js +27 -0
- package/dist/handlers/data-element-fields.js.map +1 -0
- package/dist/handlers/diagnose-ci.d.ts +9 -0
- package/dist/handlers/diagnose-ci.d.ts.map +1 -0
- package/dist/handlers/diagnose-ci.js +120 -0
- package/dist/handlers/diagnose-ci.js.map +1 -0
- package/dist/handlers/diagnose-fields.d.ts +51 -0
- package/dist/handlers/diagnose-fields.d.ts.map +1 -0
- package/dist/handlers/diagnose-fields.js +48 -0
- package/dist/handlers/diagnose-fields.js.map +1 -0
- package/dist/handlers/diagnose.d.ts +4 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +41 -6
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +3 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +96 -11
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +4 -3
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +4 -3
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/hyperfocused.js +1 -1
- package/dist/handlers/live-relations.d.ts +5 -0
- package/dist/handlers/live-relations.d.ts.map +1 -0
- package/dist/handlers/live-relations.js +89 -0
- package/dist/handlers/live-relations.js.map +1 -0
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +7 -4
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/navigate.d.ts +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +33 -7
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +6 -4
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +45 -10
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query-errors.d.ts +9 -1
- package/dist/handlers/query-errors.d.ts.map +1 -1
- package/dist/handlers/query-errors.js +40 -28
- package/dist/handlers/query-errors.js.map +1 -1
- package/dist/handlers/query.d.ts +2 -2
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +15 -22
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +112 -23
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/relation-input.d.ts +42 -0
- package/dist/handlers/relation-input.d.ts.map +1 -0
- package/dist/handlers/relation-input.js +22 -0
- package/dist/handlers/relation-input.js.map +1 -0
- package/dist/handlers/relation-tool.d.ts +5 -0
- package/dist/handlers/relation-tool.d.ts.map +1 -0
- package/dist/handlers/relation-tool.js +36 -0
- package/dist/handlers/relation-tool.js.map +1 -0
- package/dist/handlers/schemas.d.ts +119 -62
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +150 -13
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts +1 -1
- package/dist/handlers/search.d.ts.map +1 -1
- package/dist/handlers/search.js +43 -8
- package/dist/handlers/search.js.map +1 -1
- package/dist/handlers/tool-descriptions.d.ts.map +1 -1
- package/dist/handlers/tool-descriptions.js +12 -13
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +1 -0
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +4 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts +2 -3
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +139 -84
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/where-used.d.ts +2 -0
- package/dist/handlers/where-used.d.ts.map +1 -1
- package/dist/handlers/where-used.js +23 -5
- package/dist/handlers/where-used.js.map +1 -1
- package/dist/handlers/write/batch-results.d.ts +28 -0
- package/dist/handlers/write/batch-results.d.ts.map +1 -0
- package/dist/handlers/write/batch-results.js +106 -0
- package/dist/handlers/write/batch-results.js.map +1 -0
- package/dist/handlers/write/create-transport.d.ts +7 -0
- package/dist/handlers/write/create-transport.d.ts.map +1 -0
- package/dist/handlers/write/create-transport.js +38 -0
- package/dist/handlers/write/create-transport.js.map +1 -0
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +276 -413
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/uiad.d.ts +8 -0
- package/dist/handlers/write/uiad.d.ts.map +1 -0
- package/dist/handlers/write/uiad.js +115 -0
- package/dist/handlers/write/uiad.js.map +1 -0
- package/dist/handlers/write/update-delete.d.ts +6 -6
- package/dist/handlers/write/update-delete.d.ts.map +1 -1
- package/dist/handlers/write/update-delete.js +46 -15
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +0 -6
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +88 -80
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +5 -1
- package/dist/handlers/write.js.map +1 -1
- package/dist/public/index.d.ts +1 -1
- package/dist/public/index.d.ts.map +1 -1
- package/dist/public/index.js +1 -1
- package/dist/public/index.js.map +1 -1
- package/dist/public/ui/app.js +0 -2
- package/dist/server/audit.d.ts +42 -1
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts +4 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +67 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/context.d.ts +5 -0
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js.map +1 -1
- package/dist/server/destination-registry.d.ts +10 -2
- package/dist/server/destination-registry.d.ts.map +1 -1
- package/dist/server/destination-registry.js +12 -3
- package/dist/server/destination-registry.js.map +1 -1
- package/dist/server/effective-policy-log.d.ts +2 -1
- package/dist/server/effective-policy-log.d.ts.map +1 -1
- package/dist/server/effective-policy-log.js +18 -2
- package/dist/server/effective-policy-log.js.map +1 -1
- package/dist/server/http.d.ts +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +1 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +4 -1
- package/dist/server/logger.js.map +1 -1
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +7 -2
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/multi-target-tools.d.ts.map +1 -1
- package/dist/server/multi-target-tools.js +3 -1
- package/dist/server/multi-target-tools.js.map +1 -1
- package/dist/server/runtime-memory.d.ts +13 -0
- package/dist/server/runtime-memory.d.ts.map +1 -0
- package/dist/server/runtime-memory.js +42 -0
- package/dist/server/runtime-memory.js.map +1 -0
- package/dist/server/server-instructions.d.ts +2 -0
- package/dist/server/server-instructions.d.ts.map +1 -0
- package/dist/server/server-instructions.js +33 -0
- package/dist/server/server-instructions.js.map +1 -0
- package/dist/server/server.d.ts +3 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +42 -78
- package/dist/server/server.js.map +1 -1
- package/dist/server/shutdown.d.ts +6 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/shutdown.js +52 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/server/sinks/btp-auditlog.d.ts +10 -8
- package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
- package/dist/server/sinks/btp-auditlog.js +86 -68
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/sinks/file.d.ts +1 -1
- package/dist/server/sinks/file.d.ts.map +1 -1
- package/dist/server/sinks/file.js +12 -21
- package/dist/server/sinks/file.js.map +1 -1
- package/dist/server/types.d.ts +8 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +4 -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/server/ui.js +0 -2
- package/dist/server/ui.js.map +1 -1
- package/package.json +15 -13
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { fetch, getGlobalDispatcher } from 'undici';
|
|
2
|
+
import { AdtNetworkError } from './errors.js';
|
|
3
|
+
/** Typed, non-retryable exhaustion; never carries SAP response data. */
|
|
4
|
+
export class AdtRequestBudgetError extends AdtNetworkError {
|
|
5
|
+
limit;
|
|
6
|
+
constructor(limit) {
|
|
7
|
+
super(`SAP HTTP attempt limit (${limit}) reached. Narrow the requested analysis.`);
|
|
8
|
+
this.limit = limit;
|
|
9
|
+
this.name = 'AdtRequestBudgetError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/** Analysis admission/work allowance, not a failure to reach SAP. */
|
|
13
|
+
export class AdtAnalysisDeadlineError extends AdtNetworkError {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('The live analysis time limit was reached. Narrow the analysis or wait for other analyses to finish.');
|
|
16
|
+
this.name = 'AdtAnalysisDeadlineError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** A time boundary may yield partial evidence; cancellation, auth and send exhaustion may not masquerade as it. */
|
|
20
|
+
export function isDeadlineFailure(error, options) {
|
|
21
|
+
return (error instanceof AdtNetworkError &&
|
|
22
|
+
!(error instanceof AdtRequestBudgetError) &&
|
|
23
|
+
options.deadline !== undefined &&
|
|
24
|
+
Date.now() >= options.deadline &&
|
|
25
|
+
!options.signal?.aborted &&
|
|
26
|
+
!options.attemptBudget?.authorizationFailureObserved);
|
|
27
|
+
}
|
|
28
|
+
/** Request-local allowance, charged immediately before each direct/proxy SAP send. */
|
|
29
|
+
export class RequestAttemptBudget {
|
|
30
|
+
limit;
|
|
31
|
+
used = 0;
|
|
32
|
+
/** Unresolved auth evidence; only a validated native expansion may clear it after retry recovery. */
|
|
33
|
+
authorizationFailureObserved = false;
|
|
34
|
+
constructor(limit) {
|
|
35
|
+
this.limit = limit;
|
|
36
|
+
if (!Number.isSafeInteger(limit) || limit < 1)
|
|
37
|
+
throw new RangeError('Request limit must be a positive integer.');
|
|
38
|
+
}
|
|
39
|
+
consume() {
|
|
40
|
+
if (this.used >= this.limit)
|
|
41
|
+
throw new AdtRequestBudgetError(this.limit);
|
|
42
|
+
this.used++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Count below Fetch's internal 421 replay; preserve the existing dispatcher/TLS configuration. */
|
|
46
|
+
export async function fetchWithAttemptBudget(url, init, budget) {
|
|
47
|
+
if (!budget)
|
|
48
|
+
return fetch(url, init);
|
|
49
|
+
const dispatcher = (init.dispatcher ?? getGlobalDispatcher()).compose((dispatch) => (options, handler) => {
|
|
50
|
+
budget.consume();
|
|
51
|
+
return dispatch(options, handler);
|
|
52
|
+
});
|
|
53
|
+
try {
|
|
54
|
+
return await fetch(url, { ...init, dispatcher });
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
// Fetch wraps dispatcher errors. Keep exhaustion typed and non-retryable for partial-result policy.
|
|
58
|
+
if (error instanceof TypeError && error.cause instanceof AdtRequestBudgetError)
|
|
59
|
+
throw error.cause;
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=request-attempt-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-attempt-budget.js","sourceRoot":"","sources":["../../src/adt/request-attempt-budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAoB,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,wEAAwE;AACxE,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACnC,KAAK;IAA1B,YAAqB,KAAa;QAChC,KAAK,CAAC,2BAA2B,KAAK,2CAA2C,CAAC,CAAC;qBADhE,KAAK;QAExB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,qEAAqE;AACrE,MAAM,OAAO,wBAAyB,SAAQ,eAAe;IAC3D;QACE,KAAK,CAAC,qGAAqG,CAAC,CAAC;QAC7G,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,OAA0B;IAC1E,OAAO,CACL,KAAK,YAAY,eAAe;QAChC,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;QACzC,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ;QAC9B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO;QACxB,CAAC,OAAO,CAAC,aAAa,EAAE,4BAA4B,CACrD,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,OAAO,oBAAoB;IAIV,KAAK;IAH1B,IAAI,GAAG,CAAC,CAAC;IACT,qGAAqG;IACrG,4BAA4B,GAAG,KAAK,CAAC;IACrC,YAAqB,KAAa;qBAAb,KAAK;QACxB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO;QACL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,IAAiB,EAAE,MAA6B;IACxG,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACvG,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oGAAoG;QACpG,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,CAAC,KAAK,YAAY,qBAAqB;YAAE,MAAM,KAAK,CAAC,KAAK,CAAC;QAClG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-limits.d.ts","sourceRoot":"","sources":["../../src/adt/result-limits.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Keep URL limits and response metadata consistent; finite values clamp to [1, 1000]. */
|
|
2
|
+
export function clampUrlLimit(requested, fallback) {
|
|
3
|
+
if (requested === undefined || !Number.isFinite(requested))
|
|
4
|
+
return fallback;
|
|
5
|
+
return Math.max(1, Math.min(1000, Math.floor(requested)));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=result-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-limits.js","sourceRoot":"","sources":["../../src/adt/result-limits.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,SAA6B,EAAE,QAAgB;IAC3E,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/adt/safety.d.ts
CHANGED
|
@@ -48,6 +48,8 @@ export interface SafetyConfig {
|
|
|
48
48
|
allowFreeSQL: boolean;
|
|
49
49
|
allowTransportWrites: boolean;
|
|
50
50
|
allowGitWrites: boolean;
|
|
51
|
+
/** Experimental exact-name denylist for direct and transitive SQL data sources. */
|
|
52
|
+
blockedDataSources: string[];
|
|
51
53
|
allowedPackages: string[];
|
|
52
54
|
allowedTransports: string[];
|
|
53
55
|
/** Resolved deny-action patterns from SAP_DENY_ACTIONS. Populated at config-parse time. */
|
package/dist/adt/safety.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/adt/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,yFAAyF;AACzF,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,aAAa;aACxB,IAAI,EAAE,GAAG;aACT,MAAM,EAAE,GAAG;aACX,KAAK,EAAE,GAAG;aACV,OAAO,EAAE,GAAG;aACZ,MAAM,EAAE,GAAG;aACX,MAAM,EAAE,GAAG;aACX,MAAM,EAAE,GAAG;aACX,QAAQ,EAAE,GAAG;aACb,IAAI,EAAE,GAAG;aACT,IAAI,EAAE,GAAG;aACT,YAAY,EAAE,GAAG;aACjB,QAAQ,EAAE,GAAG;aACb,SAAS,EAAE,GAAG;CACN,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAcnF,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2FAA2F;IAC3F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/adt/safety.ts"],"names":[],"mappings":"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"}
|
package/dist/adt/safety.js
CHANGED
|
@@ -62,6 +62,7 @@ export function defaultSafetyConfig() {
|
|
|
62
62
|
allowFreeSQL: false,
|
|
63
63
|
allowTransportWrites: false,
|
|
64
64
|
allowGitWrites: false,
|
|
65
|
+
blockedDataSources: [],
|
|
65
66
|
allowedPackages: ['$TMP'],
|
|
66
67
|
allowedTransports: [],
|
|
67
68
|
denyActions: [],
|
|
@@ -75,6 +76,7 @@ export function unrestrictedSafetyConfig() {
|
|
|
75
76
|
allowFreeSQL: true,
|
|
76
77
|
allowTransportWrites: true,
|
|
77
78
|
allowGitWrites: true,
|
|
79
|
+
blockedDataSources: [],
|
|
78
80
|
allowedPackages: [],
|
|
79
81
|
allowedTransports: [],
|
|
80
82
|
denyActions: [],
|
|
@@ -306,6 +308,7 @@ export function deriveUserSafety(serverConfig, scopes) {
|
|
|
306
308
|
...serverConfig,
|
|
307
309
|
allowedPackages: [...serverConfig.allowedPackages],
|
|
308
310
|
allowedTransports: [...serverConfig.allowedTransports],
|
|
311
|
+
blockedDataSources: [...serverConfig.blockedDataSources],
|
|
309
312
|
denyActions: [...serverConfig.denyActions],
|
|
310
313
|
};
|
|
311
314
|
if (!expanded.has('write'))
|
|
@@ -410,6 +413,7 @@ export function deriveUserSafetyFromProfile(serverConfig, profileSafety) {
|
|
|
410
413
|
allowGitWrites: and(serverConfig.allowGitWrites, profileSafety.allowGitWrites),
|
|
411
414
|
allowedPackages: intersectList(serverConfig.allowedPackages, profileSafety.allowedPackages),
|
|
412
415
|
allowedTransports: intersectList(serverConfig.allowedTransports, profileSafety.allowedTransports),
|
|
416
|
+
blockedDataSources: [...new Set([...serverConfig.blockedDataSources, ...(profileSafety.blockedDataSources ?? [])])],
|
|
413
417
|
denyActions: [...new Set([...serverConfig.denyActions, ...(profileSafety.denyActions ?? [])])],
|
|
414
418
|
};
|
|
415
419
|
return effective;
|
|
@@ -431,6 +435,8 @@ export function describeSafety(config) {
|
|
|
431
435
|
parts.push(`Packages=${displayAllowList(config.allowedPackages)}`);
|
|
432
436
|
if (config.allowedTransports.length > 0)
|
|
433
437
|
parts.push(`Transports=${displayAllowList(config.allowedTransports)}`);
|
|
438
|
+
if (config.blockedDataSources.length > 0)
|
|
439
|
+
parts.push(`BlockedDataSources=${config.blockedDataSources.length}`);
|
|
434
440
|
if (config.denyActions.length > 0)
|
|
435
441
|
parts.push(`DenyActions=${config.denyActions.length}`);
|
|
436
442
|
return parts.length === 0 ? 'READ-ONLY' : parts.join(', ');
|
package/dist/adt/safety.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/adt/safety.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/adt/safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -217,10 +217,14 @@ export declare function getServerDrivenObject(http: AdtHttpClient, safety: Safet
|
|
|
217
217
|
* it would be an ADT-ignored attribute — so the body here is exactly the form proven to create every
|
|
218
218
|
* registered type.
|
|
219
219
|
*/
|
|
220
|
-
export
|
|
220
|
+
export type UiadLanguageVersion = 'standard' | 'keyUser' | 'cloudDevelopment';
|
|
221
|
+
export declare function buildServerDrivenMetadataXml(code: string, name: string, pkg: string, description: string, uiadLanguageVersion?: UiadLanguageVersion): string;
|
|
221
222
|
/** Options shared by the SDO write operations. */
|
|
222
223
|
export interface ServerDrivenWriteOptions {
|
|
223
224
|
transport?: string;
|
|
225
|
+
/** Internal mutation accounting; never a tool input. */
|
|
226
|
+
onSourceWrite?: (state: 'attempted' | 'confirmed') => void;
|
|
227
|
+
onUnlockFailure?: () => void;
|
|
224
228
|
}
|
|
225
229
|
/**
|
|
226
230
|
* Create a server-driven object (metadata only — POST the <blue:blueSource> body to the collection
|
|
@@ -231,6 +235,7 @@ export declare function createServerDrivenObject(http: AdtHttpClient, safety: Sa
|
|
|
231
235
|
package: string;
|
|
232
236
|
description: string;
|
|
233
237
|
transport?: string;
|
|
238
|
+
uiadLanguageVersion?: UiadLanguageVersion;
|
|
234
239
|
}): Promise<string>;
|
|
235
240
|
/**
|
|
236
241
|
* Write the source of a server-driven object: lock → PUT …/source/main → unlock (guaranteed via
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-driven.d.ts","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-driven.d.ts","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* the metadata content-type varies (blues v1, EVTO=blues v2, DTDC=ddic.dtdc.v1) — all stored per
|
|
24
24
|
* registry entry, verified live: the blue family on 816, DTDC create→activate on 758 + 816.
|
|
25
25
|
*/
|
|
26
|
+
import { logger } from '../server/logger.js';
|
|
26
27
|
import { lockObject, unlockObject } from './crud.js';
|
|
27
28
|
import { fetchDiscoveryDocument, resolveAcceptType } from './discovery.js';
|
|
28
29
|
import { AdtApiError } from './errors.js';
|
|
@@ -141,9 +142,8 @@ export const SDO_REGISTRY = {
|
|
|
141
142
|
},
|
|
142
143
|
// Launchpad content: the LADI replaces the deprecated tile/target-mapping model and is the
|
|
143
144
|
// developer-owned unit on ABAP Cloud. blues.v2 (v1 -> 406, verified on 816).
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
// clear and also covers read-only manifest-generated items, so no client-side guard.
|
|
145
|
+
// Manual Cloud-language items are editable, including on-prem 816. Generated items and Standard
|
|
146
|
+
// language items can be readonly. The UIAD writer probes the object's root configuration flag.
|
|
147
147
|
UIAD: {
|
|
148
148
|
href: '/sap/bc/adt/fiori/uiad',
|
|
149
149
|
label: 'Launchpad App Descriptor Item (LADI)',
|
|
@@ -233,7 +233,7 @@ export async function ensureServerDrivenSupport(http, safety, code) {
|
|
|
233
233
|
export function serverDrivenUnavailableMessage(tool, code) {
|
|
234
234
|
return (`${tool} type=${code} (server-driven object): this system does not advertise ADT support for it. ` +
|
|
235
235
|
'These types are discovery-gated and depend on the SAP release / support package ' +
|
|
236
|
-
'(e.g. DTSC/CSNM/EVTO
|
|
236
|
+
'(e.g. DTSC/CSNM/EVTO ship on ABAP Platform 2025 / SAP_BASIS 8.16+, while DTDC/DSFD/EVTB and UIAD backports also ship on S/4HANA 2023 / 758).');
|
|
237
237
|
}
|
|
238
238
|
/**
|
|
239
239
|
* Read a server-driven object: its metadata (blue:blueSource or dtdc:dtdcSource) + source (AFF JSON
|
|
@@ -256,23 +256,11 @@ export async function getServerDrivenObject(http, safety, code, name) {
|
|
|
256
256
|
}
|
|
257
257
|
return { ...metadata, source };
|
|
258
258
|
}
|
|
259
|
-
|
|
260
|
-
* Build the minimal metadata create body for a server-driven object — the per-type root element
|
|
261
|
-
* (blue:blueSource or dtdc:dtdcSource) with the verified `createType` for `adtcore:type`
|
|
262
|
-
* (e.g. DESD/TYP, EVTB/EVB, DTDC/DF) + the package ref.
|
|
263
|
-
*
|
|
264
|
-
* NOTE — no `adtcore:masterLanguage`: live-verified on a4h-2025 (816) that ADT *silently ignores*
|
|
265
|
-
* that attribute for these objects (create with masterLanguage="DE" → object still read back as the
|
|
266
|
-
* session language). The object's master language comes from the `sap-language` request param (the
|
|
267
|
-
* session = `config.language` / SAP_LANGUAGE), as with other source-based objects (cf. #343). Emitting
|
|
268
|
-
* it would be an ADT-ignored attribute — so the body here is exactly the form proven to create every
|
|
269
|
-
* registered type.
|
|
270
|
-
*/
|
|
271
|
-
export function buildServerDrivenMetadataXml(code, name, pkg, description) {
|
|
259
|
+
export function buildServerDrivenMetadataXml(code, name, pkg, description, uiadLanguageVersion) {
|
|
272
260
|
const entry = sdoEntry(code);
|
|
273
261
|
const [prefix] = entry.metadataRootQName.split(':');
|
|
274
262
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
275
|
-
<${entry.metadataRootQName} xmlns:${prefix}="${entry.metadataNamespace}" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:type="${escapeXmlAttr(entry.createType)}" adtcore:name="${escapeXmlAttr(name)}" adtcore:description="${escapeXmlAttr(description)}">
|
|
263
|
+
<${entry.metadataRootQName} xmlns:${prefix}="${entry.metadataNamespace}" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:type="${escapeXmlAttr(entry.createType)}" adtcore:name="${escapeXmlAttr(name)}" adtcore:description="${escapeXmlAttr(description)}"${code === 'UIAD' && uiadLanguageVersion ? ` adtcore:abapLanguageVersion="${escapeXmlAttr(uiadLanguageVersion)}"` : ''}>
|
|
276
264
|
<adtcore:packageRef adtcore:name="${escapeXmlAttr(pkg)}"/>
|
|
277
265
|
</${entry.metadataRootQName}>`;
|
|
278
266
|
}
|
|
@@ -284,7 +272,7 @@ export function buildServerDrivenMetadataXml(code, name, pkg, description) {
|
|
|
284
272
|
export async function createServerDrivenObject(http, safety, code, name, opts) {
|
|
285
273
|
checkOperation(safety, OperationType.Create, 'CreateServerDrivenObject');
|
|
286
274
|
const entry = sdoEntry(code);
|
|
287
|
-
const body = buildServerDrivenMetadataXml(code, name, opts.package, opts.description);
|
|
275
|
+
const body = buildServerDrivenMetadataXml(code, name, opts.package, opts.description, opts.uiadLanguageVersion);
|
|
288
276
|
const url = opts.transport ? `${entry.href}?corrNr=${encodeURIComponent(opts.transport)}` : entry.href;
|
|
289
277
|
const resp = await http.post(url, body, entry.metadataContentType);
|
|
290
278
|
return resp.body;
|
|
@@ -302,15 +290,31 @@ export async function updateServerDrivenObjectSource(http, safety, code, name, s
|
|
|
302
290
|
await http.withStatefulSession(async (session) => {
|
|
303
291
|
const lock = await lockObject(session, safety, objUrl, 'MODIFY');
|
|
304
292
|
const transport = opts.transport ?? (lock.corrNr || undefined);
|
|
293
|
+
let unlockError;
|
|
305
294
|
try {
|
|
306
295
|
const params = [`lockHandle=${encodeURIComponent(lock.lockHandle)}`];
|
|
307
296
|
if (transport)
|
|
308
297
|
params.push(`corrNr=${encodeURIComponent(transport)}`);
|
|
298
|
+
opts.onSourceWrite?.('attempted');
|
|
309
299
|
await session.put(`${objUrl}/source/main?${params.join('&')}`, source, serverDrivenSourceContentType(code));
|
|
300
|
+
opts.onSourceWrite?.('confirmed');
|
|
310
301
|
}
|
|
311
302
|
finally {
|
|
312
|
-
|
|
303
|
+
try {
|
|
304
|
+
await unlockObject(session, objUrl, lock.lockHandle);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
unlockError = error;
|
|
308
|
+
logger.warn('Server-driven object unlock failed; a SAP lock may remain.', {
|
|
309
|
+
objectUrl: objUrl,
|
|
310
|
+
...(error instanceof AdtApiError ? { statusCode: error.statusCode } : {}),
|
|
311
|
+
});
|
|
312
|
+
opts.onUnlockFailure?.();
|
|
313
|
+
}
|
|
313
314
|
}
|
|
315
|
+
// Reached only when the PUT succeeded. A failed PUT keeps its original exception.
|
|
316
|
+
if (unlockError !== undefined)
|
|
317
|
+
throw unlockError;
|
|
314
318
|
});
|
|
315
319
|
}
|
|
316
320
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-driven.js","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server-driven.js","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conservative ABAP SQL source analysis for the experimental data-source blocklist.
|
|
3
|
+
*
|
|
4
|
+
* This is an authorization parser, not a formatter or best-effort dependency extractor:
|
|
5
|
+
* anything that cannot be proven to be one complete static SELECT/WITH statement is refused.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SqlSourceAnalysisError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
/** Extract every static database source from one complete ABAP SQL SELECT/WITH statement. */
|
|
11
|
+
export declare function analyzeSqlDataSources(sql: string): string[];
|
|
12
|
+
//# sourceMappingURL=sql-source-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-source-analyzer.d.ts","sourceRoot":"","sources":["../../src/adt/sql-source-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA+ED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA4E3D"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conservative ABAP SQL source analysis for the experimental data-source blocklist.
|
|
3
|
+
*
|
|
4
|
+
* This is an authorization parser, not a formatter or best-effort dependency extractor:
|
|
5
|
+
* anything that cannot be proven to be one complete static SELECT/WITH statement is refused.
|
|
6
|
+
*/
|
|
7
|
+
import { Expressions, MemoryFile, Registry, Version } from '@abaplint/core';
|
|
8
|
+
import { getDefaultAbaplintConfig } from '../lint/abaplint-config-cache.js';
|
|
9
|
+
import { canonicalDataSourceName } from './data-source-name.js';
|
|
10
|
+
const MAX_SQL_LENGTH = 100_000;
|
|
11
|
+
const SYNTHETIC_TARGET = '__arc1_policy_result';
|
|
12
|
+
const FORBIDDEN_EXPRESSIONS = [
|
|
13
|
+
['privileged access', Expressions.SQLPrivilegedAccess],
|
|
14
|
+
['client override', Expressions.SQLClient],
|
|
15
|
+
['secondary database connection', Expressions.DatabaseConnection],
|
|
16
|
+
['dynamic expression', Expressions.Dynamic],
|
|
17
|
+
['CDS association path', Expressions.SQLPathForEntity],
|
|
18
|
+
['CDS column path', Expressions.SQLPathForColumn],
|
|
19
|
+
['external PROVIDED BY source', Expressions.SQLProvidedBy],
|
|
20
|
+
];
|
|
21
|
+
export class SqlSourceAnalysisError extends Error {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(`SQL source analysis failed: ${message}`);
|
|
24
|
+
this.name = 'SqlSourceAnalysisError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Canonicalize a source the parser found, reporting failure as a SQL-grammar problem.
|
|
29
|
+
*
|
|
30
|
+
* Identity rules live in one place (`data-source-name.ts`); a name the shared canonicalizer refuses
|
|
31
|
+
* means the statement is outside the accepted subset, not that lineage is unresolved.
|
|
32
|
+
*/
|
|
33
|
+
function parsedSourceName(raw) {
|
|
34
|
+
try {
|
|
35
|
+
return canonicalDataSourceName(raw, 'SQL data source');
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new SqlSourceAnalysisError(error instanceof Error ? error.message : String(error));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Refuse lexical constructs the strict subset does not accept, before the statement is parsed.
|
|
43
|
+
*
|
|
44
|
+
* `@abaplint/core` strips ABAP comments during lexing, so a commented region is invisible to the
|
|
45
|
+
* security parser while the ORIGINAL, unmodified string — comment included — is what is posted to
|
|
46
|
+
* `/sap/bc/adt/datapreview/freestyle`. That divergence is not a demonstrated exploit: live SAP_BASIS
|
|
47
|
+
* 758 answered an inline quote comment with HTTP 400 and ignored a column-one asterisk comment,
|
|
48
|
+
* matching ordinary ABAP comment semantics. It is refused anyway for a narrower reason — while
|
|
49
|
+
* comments are accepted, the text the analyzer inspects is not the text SAP receives, and that is
|
|
50
|
+
* only safe because of an assumption about a parser ARC-1 does not control. Rejecting them removes
|
|
51
|
+
* the assumption and shrinks the accepted grammar at no cost.
|
|
52
|
+
*
|
|
53
|
+
* Lexing is literal-aware: a double quote or semicolon INSIDE a single-quoted literal is legitimate
|
|
54
|
+
* (`WHERE X = 'a"b'`) and stays accepted, and doubled single quotes (`'it''s'`) are escaped quotes,
|
|
55
|
+
* not literal terminators.
|
|
56
|
+
*/
|
|
57
|
+
function rejectUnsupportedLexicalConstructs(sql) {
|
|
58
|
+
let inLiteral = false;
|
|
59
|
+
let column = 0;
|
|
60
|
+
for (let i = 0; i < sql.length; i++) {
|
|
61
|
+
const char = sql[i];
|
|
62
|
+
if (char === '\n' || char === '\r') {
|
|
63
|
+
column = 0;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const atColumnOne = column === 0;
|
|
67
|
+
column += 1;
|
|
68
|
+
if (inLiteral) {
|
|
69
|
+
if (char === "'") {
|
|
70
|
+
if (sql[i + 1] === "'") {
|
|
71
|
+
i += 1;
|
|
72
|
+
column += 1;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
inLiteral = false;
|
|
76
|
+
}
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (char === "'") {
|
|
80
|
+
inLiteral = true;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (char === '"') {
|
|
84
|
+
throw new SqlSourceAnalysisError('ABAP inline comments (") are not accepted by the strict SQL subset; remove the comment and resubmit');
|
|
85
|
+
}
|
|
86
|
+
if (char === ';') {
|
|
87
|
+
throw new SqlSourceAnalysisError('semicolons are not accepted by the strict SQL subset');
|
|
88
|
+
}
|
|
89
|
+
if (atColumnOne && char === '*') {
|
|
90
|
+
throw new SqlSourceAnalysisError('ABAP full-line comments (* in column one) are not accepted by the strict SQL subset; remove the comment and resubmit');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (inLiteral)
|
|
94
|
+
throw new SqlSourceAnalysisError('unterminated string literal');
|
|
95
|
+
}
|
|
96
|
+
/** Extract every static database source from one complete ABAP SQL SELECT/WITH statement. */
|
|
97
|
+
export function analyzeSqlDataSources(sql) {
|
|
98
|
+
if (sql.length > MAX_SQL_LENGTH) {
|
|
99
|
+
throw new SqlSourceAnalysisError(`SQL is too long for policy analysis (maximum ${MAX_SQL_LENGTH} characters)`);
|
|
100
|
+
}
|
|
101
|
+
const trimmed = sql.trim();
|
|
102
|
+
if (!trimmed)
|
|
103
|
+
throw new SqlSourceAnalysisError('SQL is empty');
|
|
104
|
+
// Runs on the trimmed text, which is exactly what is embedded below, so column-one detection
|
|
105
|
+
// matches what the parser sees.
|
|
106
|
+
rejectUnsupportedLexicalConstructs(trimmed);
|
|
107
|
+
const inputLineCount = trimmed.split(/\r?\n/).length;
|
|
108
|
+
const syntheticTargetRow = inputLineCount + 3;
|
|
109
|
+
const source = `REPORT zarc1_policy.\nSTART-OF-SELECTION.\n${trimmed}\n` + `INTO TABLE @DATA(${SYNTHETIC_TARGET}).`;
|
|
110
|
+
const registry = new Registry(getDefaultAbaplintConfig(Version.v758));
|
|
111
|
+
registry.addFile(new MemoryFile('zarc1_policy.prog.abap', source));
|
|
112
|
+
registry.parse();
|
|
113
|
+
const parserIssues = registry.findIssues().filter((issue) => issue.getKey() === 'parser_error');
|
|
114
|
+
if (parserIssues.length > 0) {
|
|
115
|
+
throw new SqlSourceAnalysisError('statement is malformed or unsupported by the security parser');
|
|
116
|
+
}
|
|
117
|
+
const objects = Array.from(registry.getObjects());
|
|
118
|
+
const object = objects[0];
|
|
119
|
+
const structure = object?.getMainABAPFile?.()?.getStructure?.();
|
|
120
|
+
if (objects.length !== 1 || !structure) {
|
|
121
|
+
throw new SqlSourceAnalysisError('statement did not produce one complete ABAP program syntax tree');
|
|
122
|
+
}
|
|
123
|
+
const statements = structure.findAllStatementNodes();
|
|
124
|
+
if (statements.length !== 3 ||
|
|
125
|
+
statements[0]?.get().constructor.name !== 'Report' ||
|
|
126
|
+
statements[1]?.get().constructor.name !== 'StartOfSelection' ||
|
|
127
|
+
!['Select', 'With'].includes(statements[2]?.get().constructor.name ?? '')) {
|
|
128
|
+
throw new SqlSourceAnalysisError('exactly one SELECT or WITH statement is required');
|
|
129
|
+
}
|
|
130
|
+
const queryStatement = statements[2];
|
|
131
|
+
const tokens = queryStatement.getTokens();
|
|
132
|
+
const syntheticTokens = tokens
|
|
133
|
+
.filter((token) => token.getRow() === syntheticTargetRow)
|
|
134
|
+
.map((token) => token.getStr());
|
|
135
|
+
const expectedTarget = ['INTO', 'TABLE', '@', 'DATA', '(', SYNTHETIC_TARGET, ')', '.'];
|
|
136
|
+
if (syntheticTokens.length !== expectedTarget.length ||
|
|
137
|
+
syntheticTokens.some((token, i) => token !== expectedTarget[i])) {
|
|
138
|
+
throw new SqlSourceAnalysisError('statement is incomplete or already contains an output target');
|
|
139
|
+
}
|
|
140
|
+
const callerHostMarkers = tokens.filter((token) => token.constructor.name === 'WAt' && token.getRow() !== syntheticTargetRow);
|
|
141
|
+
if (callerHostMarkers.length > 0) {
|
|
142
|
+
throw new SqlSourceAnalysisError('host expressions are not allowed while the data-source blocklist is active');
|
|
143
|
+
}
|
|
144
|
+
for (const [label, expression] of FORBIDDEN_EXPRESSIONS) {
|
|
145
|
+
if (structure.findAllExpressionsRecursive(expression).length > 0) {
|
|
146
|
+
throw new SqlSourceAnalysisError(`${label} is not allowed while the data-source blocklist is active`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const sources = structure
|
|
150
|
+
.findAllExpressionsRecursive(Expressions.DatabaseTable)
|
|
151
|
+
.map((node) => parsedSourceName(node.concatTokens()));
|
|
152
|
+
const uniqueSources = [...new Set(sources)];
|
|
153
|
+
if (uniqueSources.length === 0) {
|
|
154
|
+
throw new SqlSourceAnalysisError('no static database source could be proven');
|
|
155
|
+
}
|
|
156
|
+
return uniqueSources;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=sql-source-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-source-analyzer.js","sourceRoot":"","sources":["../../src/adt/sql-source-analyzer.ts"],"names":[],"mappings":"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"}
|