arc-1 1.4.0 → 1.5.1

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.
Files changed (257) hide show
  1. package/README.md +1 -1
  2. package/dist/adt/abapgit.d.ts.map +1 -1
  3. package/dist/adt/abapgit.js +64 -7
  4. package/dist/adt/abapgit.js.map +1 -1
  5. package/dist/adt/aunit.js +4 -4
  6. package/dist/adt/aunit.js.map +1 -1
  7. package/dist/adt/class-structure.d.ts +4 -2
  8. package/dist/adt/class-structure.d.ts.map +1 -1
  9. package/dist/adt/class-structure.js +18 -9
  10. package/dist/adt/class-structure.js.map +1 -1
  11. package/dist/adt/client.d.ts +19 -53
  12. package/dist/adt/client.d.ts.map +1 -1
  13. package/dist/adt/client.js +72 -96
  14. package/dist/adt/client.js.map +1 -1
  15. package/dist/adt/codeintel.d.ts +1 -1
  16. package/dist/adt/codeintel.d.ts.map +1 -1
  17. package/dist/adt/codeintel.js +11 -4
  18. package/dist/adt/codeintel.js.map +1 -1
  19. package/dist/adt/config.d.ts +5 -0
  20. package/dist/adt/config.d.ts.map +1 -1
  21. package/dist/adt/config.js.map +1 -1
  22. package/dist/adt/crud.d.ts +3 -3
  23. package/dist/adt/crud.d.ts.map +1 -1
  24. package/dist/adt/crud.js +21 -6
  25. package/dist/adt/crud.js.map +1 -1
  26. package/dist/adt/data-source-policy.d.ts +21 -13
  27. package/dist/adt/data-source-policy.d.ts.map +1 -1
  28. package/dist/adt/data-source-policy.js +63 -114
  29. package/dist/adt/data-source-policy.js.map +1 -1
  30. package/dist/adt/ddic-xml.d.ts +9 -0
  31. package/dist/adt/ddic-xml.d.ts.map +1 -1
  32. package/dist/adt/ddic-xml.js +17 -3
  33. package/dist/adt/ddic-xml.js.map +1 -1
  34. package/dist/adt/devtools.js +3 -3
  35. package/dist/adt/devtools.js.map +1 -1
  36. package/dist/adt/diagnostics.js +4 -4
  37. package/dist/adt/diagnostics.js.map +1 -1
  38. package/dist/adt/enhancements.d.ts +7 -0
  39. package/dist/adt/enhancements.d.ts.map +1 -0
  40. package/dist/adt/enhancements.js +89 -0
  41. package/dist/adt/enhancements.js.map +1 -0
  42. package/dist/adt/errors.d.ts +19 -10
  43. package/dist/adt/errors.d.ts.map +1 -1
  44. package/dist/adt/errors.js +73 -53
  45. package/dist/adt/errors.js.map +1 -1
  46. package/dist/adt/fm-signature.d.ts +1 -1
  47. package/dist/adt/fm-signature.d.ts.map +1 -1
  48. package/dist/adt/fm-signature.js +9 -1
  49. package/dist/adt/fm-signature.js.map +1 -1
  50. package/dist/adt/http.d.ts +7 -27
  51. package/dist/adt/http.d.ts.map +1 -1
  52. package/dist/adt/http.js +34 -32
  53. package/dist/adt/http.js.map +1 -1
  54. package/dist/adt/internal-data-operations.d.ts +3 -2
  55. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  56. package/dist/adt/internal-data-operations.js +8 -1
  57. package/dist/adt/internal-data-operations.js.map +1 -1
  58. package/dist/adt/legacy-content-handler.d.ts +3 -0
  59. package/dist/adt/legacy-content-handler.d.ts.map +1 -0
  60. package/dist/adt/legacy-content-handler.js +21 -0
  61. package/dist/adt/legacy-content-handler.js.map +1 -0
  62. package/dist/adt/lock-object.d.ts +92 -0
  63. package/dist/adt/lock-object.d.ts.map +1 -0
  64. package/dist/adt/lock-object.js +195 -0
  65. package/dist/adt/lock-object.js.map +1 -0
  66. package/dist/adt/rap-generate.d.ts +5 -1
  67. package/dist/adt/rap-generate.d.ts.map +1 -1
  68. package/dist/adt/rap-generate.js +112 -100
  69. package/dist/adt/rap-generate.js.map +1 -1
  70. package/dist/adt/server-driven.d.ts +42 -10
  71. package/dist/adt/server-driven.d.ts.map +1 -1
  72. package/dist/adt/server-driven.js +98 -18
  73. package/dist/adt/server-driven.js.map +1 -1
  74. package/dist/adt/source-precondition.d.ts +3 -0
  75. package/dist/adt/source-precondition.d.ts.map +1 -0
  76. package/dist/adt/source-precondition.js +12 -0
  77. package/dist/adt/source-precondition.js.map +1 -0
  78. package/dist/adt/text-search.js +5 -5
  79. package/dist/adt/text-search.js.map +1 -1
  80. package/dist/adt/transport.js +3 -3
  81. package/dist/adt/transport.js.map +1 -1
  82. package/dist/adt/types.d.ts +19 -1
  83. package/dist/adt/types.d.ts.map +1 -1
  84. package/dist/adt/user-agent.d.ts +4 -0
  85. package/dist/adt/user-agent.d.ts.map +1 -0
  86. package/dist/adt/user-agent.js +11 -0
  87. package/dist/adt/user-agent.js.map +1 -0
  88. package/dist/adt/xml-entities.d.ts +3 -0
  89. package/dist/adt/xml-entities.d.ts.map +1 -0
  90. package/dist/adt/xml-entities.js +19 -0
  91. package/dist/adt/xml-entities.js.map +1 -0
  92. package/dist/adt/xml-parser.d.ts +7 -30
  93. package/dist/adt/xml-parser.d.ts.map +1 -1
  94. package/dist/adt/xml-parser.js +25 -54
  95. package/dist/adt/xml-parser.js.map +1 -1
  96. package/dist/authz/policy.d.ts.map +1 -1
  97. package/dist/authz/policy.js +2 -0
  98. package/dist/authz/policy.js.map +1 -1
  99. package/dist/cache/caching-layer.d.ts.map +1 -1
  100. package/dist/cache/caching-layer.js +7 -11
  101. package/dist/cache/caching-layer.js.map +1 -1
  102. package/dist/cli.js +1 -1
  103. package/dist/cli.js.map +1 -1
  104. package/dist/context/compressor.d.ts.map +1 -1
  105. package/dist/context/compressor.js +5 -25
  106. package/dist/context/compressor.js.map +1 -1
  107. package/dist/context/deps.d.ts.map +1 -1
  108. package/dist/context/deps.js +50 -4
  109. package/dist/context/deps.js.map +1 -1
  110. package/dist/context/grep.d.ts +14 -0
  111. package/dist/context/grep.d.ts.map +1 -1
  112. package/dist/context/grep.js +49 -0
  113. package/dist/context/grep.js.map +1 -1
  114. package/dist/context/unit-surgery.d.ts +3 -1
  115. package/dist/context/unit-surgery.d.ts.map +1 -1
  116. package/dist/context/unit-surgery.js +52 -5
  117. package/dist/context/unit-surgery.js.map +1 -1
  118. package/dist/handlers/activate.d.ts +1 -1
  119. package/dist/handlers/activate.d.ts.map +1 -1
  120. package/dist/handlers/activate.js +23 -35
  121. package/dist/handlers/activate.js.map +1 -1
  122. package/dist/handlers/diagnose.d.ts.map +1 -1
  123. package/dist/handlers/diagnose.js +8 -29
  124. package/dist/handlers/diagnose.js.map +1 -1
  125. package/dist/handlers/dispatch.d.ts.map +1 -1
  126. package/dist/handlers/dispatch.js +21 -5
  127. package/dist/handlers/dispatch.js.map +1 -1
  128. package/dist/handlers/editable-source.d.ts +6 -0
  129. package/dist/handlers/editable-source.d.ts.map +1 -0
  130. package/dist/handlers/editable-source.js +53 -0
  131. package/dist/handlers/editable-source.js.map +1 -0
  132. package/dist/handlers/feature-cache.d.ts +2 -0
  133. package/dist/handlers/feature-cache.d.ts.map +1 -1
  134. package/dist/handlers/feature-cache.js +8 -0
  135. package/dist/handlers/feature-cache.js.map +1 -1
  136. package/dist/handlers/hyperfocused.js +1 -1
  137. package/dist/handlers/hyperfocused.js.map +1 -1
  138. package/dist/handlers/lint.js +1 -1
  139. package/dist/handlers/lint.js.map +1 -1
  140. package/dist/handlers/navigate.d.ts.map +1 -1
  141. package/dist/handlers/navigate.js +12 -2
  142. package/dist/handlers/navigate.js.map +1 -1
  143. package/dist/handlers/object-types.d.ts +2 -3
  144. package/dist/handlers/object-types.d.ts.map +1 -1
  145. package/dist/handlers/object-types.js +13 -5
  146. package/dist/handlers/object-types.js.map +1 -1
  147. package/dist/handlers/read.d.ts.map +1 -1
  148. package/dist/handlers/read.js +38 -7
  149. package/dist/handlers/read.js.map +1 -1
  150. package/dist/handlers/schemas.d.ts +39 -0
  151. package/dist/handlers/schemas.d.ts.map +1 -1
  152. package/dist/handlers/schemas.js +50 -7
  153. package/dist/handlers/schemas.js.map +1 -1
  154. package/dist/handlers/syntax.d.ts +5 -0
  155. package/dist/handlers/syntax.d.ts.map +1 -0
  156. package/dist/handlers/syntax.js +35 -0
  157. package/dist/handlers/syntax.js.map +1 -0
  158. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  159. package/dist/handlers/tool-descriptions.js +8 -6
  160. package/dist/handlers/tool-descriptions.js.map +1 -1
  161. package/dist/handlers/tool-registry.d.ts +4 -4
  162. package/dist/handlers/tool-registry.d.ts.map +1 -1
  163. package/dist/handlers/tool-registry.js +4 -0
  164. package/dist/handlers/tool-registry.js.map +1 -1
  165. package/dist/handlers/tools.d.ts +1 -16
  166. package/dist/handlers/tools.d.ts.map +1 -1
  167. package/dist/handlers/tools.js +44 -55
  168. package/dist/handlers/tools.js.map +1 -1
  169. package/dist/handlers/transport.d.ts.map +1 -1
  170. package/dist/handlers/transport.js +17 -3
  171. package/dist/handlers/transport.js.map +1 -1
  172. package/dist/handlers/where-used.d.ts.map +1 -1
  173. package/dist/handlers/where-used.js +0 -5
  174. package/dist/handlers/where-used.js.map +1 -1
  175. package/dist/handlers/write/class-edit.d.ts +16 -0
  176. package/dist/handlers/write/class-edit.d.ts.map +1 -0
  177. package/dist/handlers/write/class-edit.js +55 -0
  178. package/dist/handlers/write/class-edit.js.map +1 -0
  179. package/dist/handlers/write/class-surgery.d.ts +2 -2
  180. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  181. package/dist/handlers/write/class-surgery.js +189 -220
  182. package/dist/handlers/write/class-surgery.js.map +1 -1
  183. package/dist/handlers/write/context.d.ts +1 -8
  184. package/dist/handlers/write/context.d.ts.map +1 -1
  185. package/dist/handlers/write/create.d.ts.map +1 -1
  186. package/dist/handlers/write/create.js +11 -4
  187. package/dist/handlers/write/create.js.map +1 -1
  188. package/dist/handlers/write/metadata-update.d.ts +4 -0
  189. package/dist/handlers/write/metadata-update.d.ts.map +1 -0
  190. package/dist/handlers/write/metadata-update.js +58 -0
  191. package/dist/handlers/write/metadata-update.js.map +1 -0
  192. package/dist/handlers/write/rap.d.ts.map +1 -1
  193. package/dist/handlers/write/rap.js +132 -155
  194. package/dist/handlers/write/rap.js.map +1 -1
  195. package/dist/handlers/write/unit-surgery.d.ts +2 -2
  196. package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
  197. package/dist/handlers/write/unit-surgery.js +14 -8
  198. package/dist/handlers/write/unit-surgery.js.map +1 -1
  199. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  200. package/dist/handlers/write/update-delete.js +34 -82
  201. package/dist/handlers/write/update-delete.js.map +1 -1
  202. package/dist/handlers/write-helpers.d.ts +3 -2
  203. package/dist/handlers/write-helpers.d.ts.map +1 -1
  204. package/dist/handlers/write-helpers.js +123 -18
  205. package/dist/handlers/write-helpers.js.map +1 -1
  206. package/dist/handlers/write.d.ts.map +1 -1
  207. package/dist/handlers/write.js +15 -29
  208. package/dist/handlers/write.js.map +1 -1
  209. package/dist/public/read-only-client.d.ts +6 -0
  210. package/dist/public/read-only-client.d.ts.map +1 -0
  211. package/dist/public/read-only-client.js +66 -0
  212. package/dist/public/read-only-client.js.map +1 -0
  213. package/dist/public/types.d.ts +2 -13
  214. package/dist/public/types.d.ts.map +1 -1
  215. package/dist/server/audit.d.ts +6 -1
  216. package/dist/server/audit.d.ts.map +1 -1
  217. package/dist/server/audit.js.map +1 -1
  218. package/dist/server/config.d.ts.map +1 -1
  219. package/dist/server/config.js +3 -0
  220. package/dist/server/config.js.map +1 -1
  221. package/dist/server/deny-actions.d.ts +2 -1
  222. package/dist/server/deny-actions.d.ts.map +1 -1
  223. package/dist/server/deny-actions.js +13 -2
  224. package/dist/server/deny-actions.js.map +1 -1
  225. package/dist/server/http.d.ts.map +1 -1
  226. package/dist/server/http.js +4 -0
  227. package/dist/server/http.js.map +1 -1
  228. package/dist/server/logger.d.ts +3 -3
  229. package/dist/server/logger.d.ts.map +1 -1
  230. package/dist/server/logger.js +7 -7
  231. package/dist/server/logger.js.map +1 -1
  232. package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
  233. package/dist/server/multi-target-basic-auth.js +1 -0
  234. package/dist/server/multi-target-basic-auth.js.map +1 -1
  235. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  236. package/dist/server/multi-target-runtime.js +1 -0
  237. package/dist/server/multi-target-runtime.js.map +1 -1
  238. package/dist/server/plugin-loader.d.ts.map +1 -1
  239. package/dist/server/plugin-loader.js +1 -3
  240. package/dist/server/plugin-loader.js.map +1 -1
  241. package/dist/server/safe-http-client.d.ts +6 -12
  242. package/dist/server/safe-http-client.d.ts.map +1 -1
  243. package/dist/server/safe-http-client.js +28 -63
  244. package/dist/server/safe-http-client.js.map +1 -1
  245. package/dist/server/server.d.ts +5 -4
  246. package/dist/server/server.d.ts.map +1 -1
  247. package/dist/server/server.js +58 -51
  248. package/dist/server/server.js.map +1 -1
  249. package/dist/server/types.d.ts +1 -0
  250. package/dist/server/types.d.ts.map +1 -1
  251. package/dist/server/types.js +2 -0
  252. package/dist/server/types.js.map +1 -1
  253. package/dist/version.d.ts +3 -0
  254. package/dist/version.d.ts.map +1 -0
  255. package/dist/version.js +3 -0
  256. package/dist/version.js.map +1 -0
  257. package/package.json +7 -7
@@ -4,6 +4,7 @@ import { XMLParser } from 'fast-xml-parser';
4
4
  import { logger } from '../server/logger.js';
5
5
  import { canonicalDataSourceName, DataSourceNameError, dataSourcePolicyFingerprint } from './data-source-name.js';
6
6
  import { AdtApiError, AdtNetworkError, AdtSafetyError } from './errors.js';
7
+ import { INTERNAL_DATA_OPERATIONS } from './internal-data-operations.js';
7
8
  import { analyzeSqlDataSources } from './sql-source-analyzer.js';
8
9
  const MAX_GRAPH_XML_CHARS = 5_000_000;
9
10
  const MAX_GRAPH_DEPTH = 64;
@@ -11,8 +12,6 @@ const MAX_GRAPH_NODES = 1_000;
11
12
  const MAX_DIRECT_SOURCES = 64;
12
13
  const MAX_REPLACEMENT_SOURCES = 256;
13
14
  const MAX_RESOLUTION_ROOTS = 64;
14
- const TABLE_SOURCE_UNAVAILABLE_REASON = 'the connected SAP system does not advertise the transparent-table source metadata required to prove replacement-object lineage; the standard ADT resource is available from SAP_BASIS 7.52 onward';
15
- const TABLE_SOURCE_UNKNOWN_404_REASON = 'ADT discovery was unavailable and the canonical transparent-table source request returned HTTP 404, so replacement-object lineage support could not be established; the standard ADT resource is available from SAP_BASIS 7.52 onward';
16
15
  const graphParser = new XMLParser({
17
16
  ignoreAttributes: false,
18
17
  attributeNamePrefix: '@_',
@@ -39,13 +38,13 @@ export class DataSourcePolicyError extends AdtSafetyError {
39
38
  decisionId;
40
39
  matchedSource;
41
40
  reason;
42
- /** Always false: every policy denial happens before the SAP data request is submitted. */
41
+ /** Always false: the requested data query has not run; metadata reads may have run. */
43
42
  executed = false;
44
43
  constructor(code, directSource, sourcePath, reason, options = {}) {
45
44
  const path = sourcePath.length > 0 ? sourcePath.join(' -> ') : directSource;
46
45
  const decisionId = options.decisionId ?? newDecisionId();
47
46
  const operatorAction = code === 'DATA_POLICY_UNAVAILABLE'
48
- ? 'Keep data access disabled until this target can supply the canonical table-source metadata (normally SAP_BASIS 7.52 or newer). Clearing SAP_BLOCKED_DATA_SOURCES leaves every otherwise authorized source eligible and requires security approval.'
47
+ ? 'Keep data access disabled until this target can supply the required catalog metadata. Clearing SAP_BLOCKED_DATA_SOURCES leaves every otherwise authorized source eligible and requires security approval.'
49
48
  : 'Use a permitted static source, or change SAP_BLOCKED_DATA_SOURCES only after security review.';
50
49
  super(`${code}: request denied before data execution (executed=false, decisionId=${decisionId}). ` +
51
50
  `Source path: ${path}. Reason: ${reason}. ` +
@@ -74,8 +73,8 @@ export class DataSourcePolicyError extends AdtSafetyError {
74
73
  clientMessage(minimalErrors) {
75
74
  if (!minimalErrors)
76
75
  return this.message;
77
- return (`${this.code}: the request was denied by the administrator's data-source policy before any SAP ` +
78
- `data request was executed (executed=false, decisionId=${this.decisionId}). ` +
76
+ return (`${this.code}: the request was denied by the administrator's data-source policy before the requested SAP ` +
77
+ `data query was executed (executed=false, decisionId=${this.decisionId}). ` +
79
78
  `${this.safeAlternative()} Details are recorded in the server audit log; ask an operator to ` +
80
79
  'correlate the decision id.');
81
80
  }
@@ -85,7 +84,7 @@ export class DataSourcePolicyError extends AdtSafetyError {
85
84
  case 'DATA_SQL_UNSUPPORTED':
86
85
  return 'Rewrite the request as one complete static SELECT/WITH without comments, host expressions or dynamic sources, or use the structured SAPRead(type="TABLE_QUERY") parameters.';
87
86
  case 'DATA_POLICY_UNAVAILABLE':
88
- return 'This SAP target did not supply the metadata the policy needs (normally SAP_BASIS 7.52 or newer). Retrying unchanged will be denied; ask an operator.';
87
+ return 'This SAP target did not supply the metadata the policy needs. Retrying unchanged will be denied; ask an operator.';
89
88
  case 'DATA_LINEAGE_UNRESOLVED':
90
89
  return 'Query a source whose lineage ARC-1 can resolve, or use the structured SAPRead(type="TABLE_QUERY") parameters.';
91
90
  default:
@@ -94,10 +93,12 @@ export class DataSourcePolicyError extends AdtSafetyError {
94
93
  }
95
94
  }
96
95
  /**
97
- * SQL node kinds SAP emits in the dependency branch. Verified live on SAP_BASIS 750, 758 and 816.
96
+ * SQL node kinds from SAP_BASIS 750/758/816 captures. View-entity and projection kinds are verified
97
+ * on 758 SP02 and 816 SP01 (#912), not 750.
98
98
  * Anything outside this set inside a SQL branch fails closed.
99
99
  */
100
- export const SQL_NODE_KINDS = ['CDS_VIEW', 'TABLE', 'CDS_TABLE_FUNCTION'];
100
+ const CDS_VIEW_KINDS = ['CDS_VIEW', 'CDS_VIEW_ENTITY', 'CDS_PROJECTION_VIEW'];
101
+ export const SQL_NODE_KINDS = [...CDS_VIEW_KINDS, 'TABLE', 'CDS_TABLE_FUNCTION'];
101
102
  /**
102
103
  * The EXACT auxiliary chain SAP emits for access-control metadata, verified live on 758/816 for the
103
104
  * released standard view I_BUSINESSPARTNER:
@@ -249,10 +250,9 @@ export class DataSourceBlocklistGuard {
249
250
  async evaluate(directSources) {
250
251
  await enforceBlockedDataSources(directSources, this.blockedSources, {
251
252
  resolveDirectSource: (name) => this.resolveDirectSource(name),
252
- canonicalTableSourceAvailable: this.backend.canonicalTableSourceAvailable,
253
- readTableSource: (name) => {
253
+ readTableReplacement: (name) => {
254
254
  this.metadataRequests += 1;
255
- return this.backend.readTableSource(name);
255
+ return this.backend.readTableReplacement(name);
256
256
  },
257
257
  readCdsDependencyGraph: (ddlSource) => this.readCdsDependencyGraph(ddlSource),
258
258
  });
@@ -358,8 +358,9 @@ function parseProperties(node) {
358
358
  const key = attribute(entry, 'key')?.toUpperCase();
359
359
  const text = entry['#text'];
360
360
  const value = attribute(entry, 'value') ?? (typeof text === 'string' && text.trim() ? text.trim() : undefined);
361
- if (key && value !== undefined)
362
- result.set(key, value);
361
+ // Empty DB_EXISTS is SAP's false value; an omitted property is a different (legacy) case.
362
+ if (key)
363
+ result.set(key, value ?? '');
363
364
  }
364
365
  return result;
365
366
  }
@@ -502,98 +503,39 @@ export function parseCdsDependencyGraph(xml) {
502
503
  }
503
504
  }
504
505
  /**
505
- * Mask comments and quoted literals while retaining their original offsets.
506
- * Authorization annotations are then found only in active DDL syntax.
506
+ * A bounded catalog result must prove one active transparent table with at most one replacement, or one
507
+ * active pooled/cluster table without replacement metadata and with its physical container.
507
508
  */
508
- function scanDdlStructure(source) {
509
- const structural = source.split('');
510
- const strings = [];
511
- let cursor = 0;
512
- const mask = (index) => {
513
- if (structural[index] !== '\n' && structural[index] !== '\r')
514
- structural[index] = ' ';
515
- };
516
- while (cursor < source.length) {
517
- if (source[cursor] === '/' && source[cursor + 1] === '/') {
518
- mask(cursor++);
519
- mask(cursor++);
520
- while (cursor < source.length && source[cursor] !== '\n' && source[cursor] !== '\r')
521
- mask(cursor++);
522
- continue;
509
+ export function parseTableReplacement(table, rows) {
510
+ const row = rows[0];
511
+ const fields = ['TABNAME', 'TABCLASS', 'VIEWREF', 'VIEWREF_ERR', 'SQLTAB', 'DDLNAME'];
512
+ if (rows.length !== 1 || !row || fields.some((field) => typeof row[field] !== 'string')) {
513
+ throw new DataSourceLineageError('replacement catalog returned missing or ambiguous metadata');
514
+ }
515
+ const tableClass = row.TABCLASS.trim();
516
+ if (row.TABNAME.trim() !== table || !['TRANSP', 'POOL', 'CLUSTER'].includes(tableClass) || row.VIEWREF_ERR.trim()) {
517
+ throw new DataSourceLineageError('replacement catalog did not confirm a valid active transparent, pooled or cluster table');
518
+ }
519
+ const name = row.VIEWREF.trim();
520
+ const ddlSource = row.DDLNAME.trim();
521
+ if (tableClass !== 'TRANSP') {
522
+ if (name || ddlSource) {
523
+ throw new DataSourceLineageError('replacement catalog reported replacement metadata for a pooled or cluster table');
523
524
  }
524
- if (source[cursor] === '/' && source[cursor + 1] === '*') {
525
- mask(cursor++);
526
- mask(cursor++);
527
- let closed = false;
528
- while (cursor < source.length) {
529
- if (source[cursor] === '*' && source[cursor + 1] === '/') {
530
- mask(cursor++);
531
- mask(cursor++);
532
- closed = true;
533
- break;
534
- }
535
- mask(cursor++);
536
- }
537
- if (!closed)
538
- throw new DataSourceLineageError('table DDL contains an unterminated block comment');
539
- continue;
525
+ try {
526
+ return { container: canonicalDataSourceName(row.SQLTAB) };
540
527
  }
541
- if (source[cursor] === "'") {
542
- const start = cursor;
543
- let value = '';
544
- let closed = false;
545
- mask(cursor++);
546
- while (cursor < source.length) {
547
- const char = source[cursor];
548
- if (char === '\\' && cursor + 1 < source.length) {
549
- value += source[cursor + 1];
550
- mask(cursor++);
551
- mask(cursor++);
552
- continue;
553
- }
554
- if (char === "'") {
555
- mask(cursor++);
556
- if (source[cursor] === "'") {
557
- value += "'";
558
- mask(cursor++);
559
- continue;
560
- }
561
- closed = true;
562
- break;
563
- }
564
- value += char;
565
- mask(cursor++);
566
- }
567
- if (!closed)
568
- throw new DataSourceLineageError('table DDL contains an unterminated string literal');
569
- strings.push({ start, value });
570
- continue;
528
+ catch {
529
+ throw new DataSourceLineageError('replacement catalog did not supply the physical table pool or cluster');
571
530
  }
572
- cursor += 1;
573
531
  }
574
- return { structural: structural.join(''), strings };
575
- }
576
- /** Return a table's active CDS replacement object; malformed or duplicate annotations fail closed. */
577
- export function extractReplacementObject(source) {
578
- const { structural, strings } = scanDdlStructure(source);
579
- const markers = [...structural.matchAll(/@\s*AbapCatalog\s*\.\s*replacementObject\b/gi)];
580
- if (markers.length === 0)
532
+ if (!name && !ddlSource)
581
533
  return undefined;
582
- const annotations = [...structural.matchAll(/@\s*AbapCatalog\s*\.\s*replacementObject\s*:/gi)];
583
- if (markers.length !== 1 || annotations.length !== 1 || markers[0].index !== annotations[0].index) {
584
- throw new DataSourceLineageError('replacementObject annotation is duplicated or malformed');
585
- }
586
- const annotation = annotations[0];
587
- const valueStart = annotation.index + annotation[0].length;
588
- const valueSpan = strings.find((span) => span.start >= valueStart);
589
- if (!valueSpan || structural.slice(valueStart, valueSpan.start).trim().length > 0) {
590
- throw new DataSourceLineageError('replacementObject annotation is present but malformed');
591
- }
592
534
  try {
593
- return canonicalDataSourceName(valueSpan.value);
535
+ return { name: canonicalDataSourceName(name), ddlSource: canonicalDataSourceName(ddlSource) };
594
536
  }
595
537
  catch {
596
- throw new DataSourceLineageError('replacementObject annotation value is not an exact technical name');
538
+ throw new DataSourceLineageError('replacement catalog did not supply exact SQL-view and DDLS identities');
597
539
  }
598
540
  }
599
541
  function safeLineageFailureReason(error) {
@@ -647,40 +589,48 @@ export async function enforceBlockedDataSources(directSources, configuredBlocked
647
589
  if (replacementCache.size >= MAX_REPLACEMENT_SOURCES) {
648
590
  throw new DataSourceLineageError(`replacement inspection exceeds source limit ${MAX_REPLACEMENT_SOURCES}`);
649
591
  }
650
- const replacement = extractReplacementObject(await resolver.readTableSource(table));
592
+ const replacement = await resolver.readTableReplacement(table);
651
593
  replacementCache.set(table, replacement);
652
594
  return replacement;
653
595
  };
654
596
  const replacementAt = async (directSource, table, path) => {
655
- if (resolver.canonicalTableSourceAvailable === false) {
656
- throw new DataSourcePolicyError('DATA_POLICY_UNAVAILABLE', directSource, path, TABLE_SOURCE_UNAVAILABLE_REASON);
657
- }
658
597
  try {
659
- return await replacementFor(table);
598
+ for (const source of INTERNAL_DATA_OPERATIONS.replacement_lineage.sources) {
599
+ checkBlocked(directSource, [...path, source], [source]);
600
+ }
601
+ const lineage = await replacementFor(table);
602
+ if (lineage && 'container' in lineage) {
603
+ // Blocking the pool/cluster blocks every logical table stored in it.
604
+ checkBlocked(directSource, [...path, lineage.container], [lineage.container]);
605
+ return undefined;
606
+ }
607
+ return lineage;
660
608
  }
661
609
  catch (error) {
662
610
  if (error instanceof DataSourcePolicyError)
663
611
  throw error;
664
- if (resolver.canonicalTableSourceAvailable === undefined &&
665
- error instanceof AdtApiError &&
666
- error.statusCode === 404) {
667
- throw new DataSourcePolicyError('DATA_POLICY_UNAVAILABLE', directSource, path, TABLE_SOURCE_UNKNOWN_404_REASON);
612
+ if (error instanceof AdtApiError && error.statusCode === 404) {
613
+ throw new DataSourcePolicyError('DATA_POLICY_UNAVAILABLE', directSource, path, 'SAP did not provide the data-preview endpoint needed to read replacement catalog metadata');
668
614
  }
669
615
  throw unresolved(directSource, path, safeLineageFailureReason(error));
670
616
  }
671
617
  };
618
+ const evaluateReplacement = async (directSource, replacement, path) => {
619
+ await evaluateRoot(directSource, replacement.name, [...path, replacement.name], { kind: 'cds', ...replacement });
620
+ };
672
621
  const evaluateResolved = async (directSource, resolved, path) => {
673
622
  checkBlocked(directSource, path, [canonicalDataSourceName(resolved.name)]);
674
623
  if (resolved.kind === 'table') {
675
624
  const table = canonicalDataSourceName(resolved.name);
676
625
  const replacement = await replacementAt(directSource, table, path);
677
626
  if (replacement)
678
- await evaluateRoot(directSource, replacement, [...path, replacement]);
627
+ await evaluateReplacement(directSource, replacement, path);
679
628
  return;
680
629
  }
681
630
  if (resolved.kind !== 'cds') {
682
631
  throw unresolved(directSource, path, `source kind ${resolved.kind} has no proven lineage in the experimental policy`);
683
632
  }
633
+ checkBlocked(directSource, path, [canonicalDataSourceName(resolved.ddlSource)]);
684
634
  const graph = await resolver.readCdsDependencyGraph(canonicalDataSourceName(resolved.ddlSource));
685
635
  const normalizedGraphAliases = graph.aliases.map((alias) => canonicalDataSourceName(alias));
686
636
  if (!normalizedGraphAliases.includes(canonicalDataSourceName(resolved.name))) {
@@ -703,7 +653,7 @@ export async function enforceBlockedDataSources(directSources, configuredBlocked
703
653
  // declared kind is the primary boundary; it is never inferred from a later failed read.
704
654
  throw unresolved(directSource, nodePath, `CDS table function ${node.name} is not supported by the experimental policy: SAP does not expose its AMDP USING lineage in the dependency graph`);
705
655
  }
706
- if (node.kind !== 'CDS_VIEW') {
656
+ if (!CDS_VIEW_KINDS.includes(node.kind)) {
707
657
  throw unresolved(directSource, nodePath, `dependency kind ${node.kind} is unsupported`);
708
658
  }
709
659
  if (node.children.length === 0) {
@@ -712,15 +662,14 @@ export async function enforceBlockedDataSources(directSources, configuredBlocked
712
662
  for (const child of node.children)
713
663
  validateGraph(child, [...nodePath, child.name], false);
714
664
  };
715
- // Check the complete graph before any table-source reads. This preserves the
716
- // strongest denial on old releases where canonical replacement metadata may
717
- // be unavailable for an earlier sibling table.
665
+ // Check the complete graph before catalog reads so a blocked sibling wins
666
+ // over unavailable metadata for an earlier table.
718
667
  validateGraph(graph, graphPath, true);
719
668
  const expandReplacements = async (node, nodePath) => {
720
669
  if (node.kind === 'TABLE') {
721
670
  const replacement = await replacementAt(directSource, node.name, nodePath);
722
671
  if (replacement)
723
- await evaluateRoot(directSource, replacement, [...nodePath, replacement]);
672
+ await evaluateReplacement(directSource, replacement, nodePath);
724
673
  return;
725
674
  }
726
675
  for (const child of node.children)
@@ -728,7 +677,7 @@ export async function enforceBlockedDataSources(directSources, configuredBlocked
728
677
  };
729
678
  await expandReplacements(graph, graphPath);
730
679
  };
731
- const evaluateRoot = async (directSource, name, path) => {
680
+ const evaluateRoot = async (directSource, name, path, replacement) => {
732
681
  checkBlocked(directSource, path, [name]);
733
682
  if (activeResolution.size >= MAX_RESOLUTION_ROOTS) {
734
683
  throw unresolved(directSource, path, `replacement lineage exceeds depth limit ${MAX_RESOLUTION_ROOTS}`);
@@ -738,7 +687,7 @@ export async function enforceBlockedDataSources(directSources, configuredBlocked
738
687
  throw unresolved(directSource, path, `replacement cycle detected at ${name}`);
739
688
  activeResolution.add(cycleKey);
740
689
  try {
741
- const resolved = await resolver.resolveDirectSource(name);
690
+ const resolved = replacement ?? (await resolver.resolveDirectSource(name));
742
691
  await evaluateResolved(directSource, resolved, path);
743
692
  }
744
693
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"data-source-policy.js","sourceRoot":"","sources":["../../src/adt/data-source-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-source-policy.js","sourceRoot":"","sources":["../../src/adt/data-source-policy.ts"],"names":[],"mappings":"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"}
@@ -169,6 +169,9 @@ export interface TableTypeCreateParams {
169
169
  rowType: string;
170
170
  /** Defaults to "builtin" for a known ABAP type, else "structure". */
171
171
  rowTypeKind?: 'builtin' | 'structure';
172
+ /** Built-in rows: the stored length/decimals an update carries (CHAR 30, INT4 10). No public input. */
173
+ rowTypeLength?: string;
174
+ rowTypeDecimals?: string;
172
175
  language?: string;
173
176
  responsible?: string;
174
177
  }
@@ -185,8 +188,14 @@ export interface TableTypeInfo {
185
188
  description: string;
186
189
  rowType: string;
187
190
  rowTypeKind: string;
191
+ /** Built-in length/decimals as SAP stores them, e.g. "000030" for a CHAR 30 row. */
192
+ rowTypeLength: string;
193
+ rowTypeDecimals: string;
188
194
  accessType: string;
189
195
  keyKind: string;
196
+ /** Standard table, non-unique standard key, no secondary keys: all that buildTableTypeXml writes. */
197
+ plainStandardTable: boolean;
198
+ package: string;
190
199
  }
191
200
  /** Parse the key fields of a table-type read response (`<ttyp:tableType>`). */
192
201
  export declare function parseTableType(xml: string): TableTypeInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"ddic-xml.d.ts","sourceRoot":"","sources":["../../src/adt/ddic-xml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddic-xml.d.ts","sourceRoot":"","sources":["../../src/adt/ddic-xml.ts"],"names":[],"mappings":"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"}
@@ -222,7 +222,7 @@ export function buildTableTypeXml(params) {
222
222
  throw new Error(`TTYP rowType "${rowType}" is a built-in ABAP row type; omit rowTypeKind or use "builtin".`);
223
223
  }
224
224
  const rowTypeXml = kind === 'builtin'
225
- ? `<ttyp:typeKind>predefinedAbapType</ttyp:typeKind><ttyp:typeName/><ttyp:builtInType><ttyp:dataType>${escapeXmlAttr(rowType)}</ttyp:dataType><ttyp:length>000000</ttyp:length><ttyp:decimals>000000</ttyp:decimals></ttyp:builtInType><ttyp:rangeType/>`
225
+ ? `<ttyp:typeKind>predefinedAbapType</ttyp:typeKind><ttyp:typeName/><ttyp:builtInType><ttyp:dataType>${escapeXmlAttr(rowType)}</ttyp:dataType><ttyp:length>${formatLength(params.rowTypeLength, 6)}</ttyp:length><ttyp:decimals>${formatLength(params.rowTypeDecimals, 6)}</ttyp:decimals></ttyp:builtInType><ttyp:rangeType/>`
226
226
  : `<ttyp:typeKind>dictionaryType</ttyp:typeKind><ttyp:typeName>${escapeXmlAttr(rowType)}</ttyp:typeName><ttyp:builtInType><ttyp:dataType>STRU</ttyp:dataType><ttyp:length>000000</ttyp:length><ttyp:decimals>000000</ttyp:decimals></ttyp:builtInType><ttyp:rangeType/>`;
227
227
  return `<?xml version="1.0" encoding="UTF-8"?>
228
228
  <ttyp:tableType xmlns:ttyp="http://www.sap.com/dictionary/tabletype"
@@ -276,13 +276,27 @@ export function parseTableType(xml) {
276
276
  if (!rowType) {
277
277
  throw new Error('Invalid TTYP response: missing row type name.');
278
278
  }
279
+ const accessType = String(tt.accessType ?? '');
280
+ const keyKind = String(pk.kind ?? '');
281
+ const secondaryKeys = asRecord(tt.secondaryKeys) ?? {};
279
282
  return {
280
283
  name: String(tt['@_name'] ?? ''),
281
284
  description: String(tt['@_description'] ?? ''),
282
285
  rowType,
283
286
  rowTypeKind: typeKind,
284
- accessType: String(tt.accessType ?? ''),
285
- keyKind: String(pk.kind ?? ''),
287
+ rowTypeLength: String(builtIn.length ?? ''),
288
+ rowTypeDecimals: String(builtIn.decimals ?? ''),
289
+ accessType,
290
+ keyKind,
291
+ // Mirrors every value buildTableTypeXml hardcodes: an update resets whatever differs.
292
+ plainStandardTable: Number(tt.initialRowCount ?? 0) === 0 &&
293
+ accessType === 'standard' &&
294
+ String(pk.definition ?? '') === 'standard' &&
295
+ keyKind === 'nonUnique' &&
296
+ !String(pk.alias ?? '') &&
297
+ String(secondaryKeys.allowed ?? '') === 'notSpecified' &&
298
+ secondaryKeys.secondaryKey === undefined,
299
+ package: String(asRecord(tt.packageRef)?.['@_name'] ?? ''),
286
300
  };
287
301
  }
288
302
  export function buildMessageClassXml(params) {