@askdb/core 1.0.0-beta.45 → 1.0.0-beta.46
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 +15 -13
- package/dist/ask.d.ts +15 -7
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +29 -5
- package/dist/ask.js.map +1 -1
- package/dist/enrichment/prompt.d.ts.map +1 -1
- package/dist/enrichment/prompt.js +6 -4
- package/dist/enrichment/prompt.js.map +1 -1
- package/dist/enrichment/types.d.ts +13 -12
- package/dist/enrichment/types.d.ts.map +1 -1
- package/dist/errors.d.ts +30 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/logging/askdb-logger.d.ts +2 -0
- package/dist/logging/askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.js +3 -0
- package/dist/logging/create-askdb-logger.js.map +1 -1
- package/dist/logging/log-events.d.ts +8 -0
- package/dist/logging/log-events.d.ts.map +1 -1
- package/dist/logging/log-events.js +8 -0
- package/dist/logging/log-events.js.map +1 -1
- package/dist/schema/normalize.d.ts +0 -2
- package/dist/schema/normalize.d.ts.map +1 -1
- package/dist/schema/normalize.js +0 -4
- package/dist/schema/normalize.js.map +1 -1
- package/dist/schema/v2/index.d.ts +3 -2
- package/dist/schema/v2/index.d.ts.map +1 -1
- package/dist/schema/v2/index.js +3 -2
- package/dist/schema/v2/index.js.map +1 -1
- package/dist/schema/v2/loader.d.ts +24 -6
- package/dist/schema/v2/loader.d.ts.map +1 -1
- package/dist/schema/v2/loader.js +164 -100
- package/dist/schema/v2/loader.js.map +1 -1
- package/dist/schema/v2/save-file.d.ts +56 -0
- package/dist/schema/v2/save-file.d.ts.map +1 -0
- package/dist/schema/v2/save-file.js +138 -0
- package/dist/schema/v2/save-file.js.map +1 -0
- package/dist/schema/v2/tenant-policy-loader.d.ts +1 -10
- package/dist/schema/v2/tenant-policy-loader.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy-loader.js +65 -51
- package/dist/schema/v2/tenant-policy-loader.js.map +1 -1
- package/dist/schema/v2/tenant-policy.d.ts +5 -0
- package/dist/schema/v2/tenant-policy.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.js +26 -0
- package/dist/schema/v2/tenant-policy.js.map +1 -1
- package/dist/sql/bind.d.ts +11 -4
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +5 -8
- package/dist/sql/bind.js.map +1 -1
- package/dist/sql/dialect-spec.d.ts +1 -0
- package/dist/sql/dialect-spec.d.ts.map +1 -1
- package/dist/sql/dialect-spec.js +2 -1
- package/dist/sql/dialect-spec.js.map +1 -1
- package/dist/sql/guardrail-decide.d.ts +4 -2
- package/dist/sql/guardrail-decide.d.ts.map +1 -1
- package/dist/sql/guardrail-decide.js.map +1 -1
- package/dist/sql/prompt-identifiers.d.ts +9 -0
- package/dist/sql/prompt-identifiers.d.ts.map +1 -1
- package/dist/sql/prompt-identifiers.js +22 -3
- package/dist/sql/prompt-identifiers.js.map +1 -1
- package/dist/sql/prompt.d.ts.map +1 -1
- package/dist/sql/prompt.js +3 -1
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/rebind.d.ts +34 -7
- package/dist/sql/rebind.d.ts.map +1 -1
- package/dist/sql/rebind.js +50 -10
- package/dist/sql/rebind.js.map +1 -1
- package/dist/sql/tenant-placeholders.d.ts +26 -11
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +50 -25
- package/dist/sql/tenant-placeholders.js.map +1 -1
- package/dist/sql/tenant-policy-warnings.d.ts +8 -0
- package/dist/sql/tenant-policy-warnings.d.ts.map +1 -0
- package/dist/sql/tenant-policy-warnings.js +21 -0
- package/dist/sql/tenant-policy-warnings.js.map +1 -0
- package/dist/sql/validate.d.ts +15 -3
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +107 -8
- package/dist/sql/validate.js.map +1 -1
- package/package.json +2 -2
package/dist/sql/validate.js
CHANGED
|
@@ -48,9 +48,14 @@ function validationError(rule, summary, hint) {
|
|
|
48
48
|
* 6. `SQL_MULTI_STATEMENT`, SQL Server lexer only (so also for a dialect id that is no
|
|
49
49
|
* built-in engine) — a second statement written without `;`, which T-SQL doesn't
|
|
50
50
|
* need, or code SQL Server may split differently from the lexer (see `tsql-batch.ts`).
|
|
51
|
-
* 7. `
|
|
51
|
+
* 7. `SQL_LOCKING_READ` — a locking read, at any depth: `FOR UPDATE`, `FOR NO KEY UPDATE`,
|
|
52
|
+
* `FOR SHARE`, `FOR KEY SHARE` or `LOCK IN SHARE MODE` on every lexer, and on the SQL Server
|
|
53
|
+
* lexer a lock hint such as `UPDLOCK` or `HOLDLOCK` unquoted anywhere, or quoted alone in
|
|
54
|
+
* parentheses right after a name, at any depth and with trailing spaces, and any such name
|
|
55
|
+
* that isn't printable ASCII, which SQL Server may read as a hint (#319).
|
|
56
|
+
* 8. `SQL_FORBIDDEN_KEYWORD` — an unquoted keyword from the shared denylist or the
|
|
52
57
|
* dialect's `extraForbiddenKeywords`.
|
|
53
|
-
*
|
|
58
|
+
* 9. `SQL_FORBIDDEN_FUNCTION` — a call (`name(`) to a function in the dialect's
|
|
54
59
|
* `blockedFunctions` (side-effecting or file/network/sleep functions).
|
|
55
60
|
*
|
|
56
61
|
* Then the dialect's `extraValidate` runs on the statement without its trailing `;`.
|
|
@@ -69,7 +74,7 @@ export function validateSelectSql(dialect, sql) {
|
|
|
69
74
|
}
|
|
70
75
|
const profile = lexerProfileFor(dialect);
|
|
71
76
|
let tokens;
|
|
72
|
-
const keywords =
|
|
77
|
+
const keywords = denylistFor(dialect);
|
|
73
78
|
if (profile) {
|
|
74
79
|
tokens = checkWithProfile(trimmed, profile, keywords, blockedFunctionsFor(dialect));
|
|
75
80
|
}
|
|
@@ -125,6 +130,10 @@ function checkWithProfile(sql, profile, keywords, functions) {
|
|
|
125
130
|
throw validationError("SQL_MULTI_STATEMENT", `Multiple SQL statements are not allowed: T-SQL needs no semicolon between statements, so ${what} starts a second statement.`, "Ask for a single SELECT (WITH … SELECT allowed). Combine results with UNION, a CTE, or a subquery after an operator, a comma, or a keyword such as IN, EXISTS, FROM or APPLY.");
|
|
126
131
|
}
|
|
127
132
|
}
|
|
133
|
+
const locking = findLockingRead(tokens, profile);
|
|
134
|
+
if (locking) {
|
|
135
|
+
throw validationError("SQL_LOCKING_READ", `Locking reads are not allowed: generated SQL uses ${locking}.`, "A locking read can hold locks that other sessions wait on until the host's transaction ends. Regenerate as a plain SELECT, without FOR UPDATE, FOR SHARE, LOCK IN SHARE MODE or a SQL Server lock hint such as UPDLOCK or HOLDLOCK. On SQL Server, quote a name that isn't plain ASCII ([Größe]), and qualify it when it's the only thing inside parentheses (COUNT(t.[Größe])).");
|
|
136
|
+
}
|
|
128
137
|
for (const t of tokens) {
|
|
129
138
|
if (t.kind === "word" && keywords.has(t.lower)) {
|
|
130
139
|
throw validationError("SQL_FORBIDDEN_KEYWORD", `Forbidden keyword in generated SQL: ${t.lower.toUpperCase()}.`, `Matched whole-word guardrail keyword "${t.lower}". This build allows read-only SELECT shape only; DDL/DML, SELECT … INTO, and similar verbs are rejected.`);
|
|
@@ -144,18 +153,36 @@ function checkWithProfile(sql, profile, keywords, functions) {
|
|
|
144
153
|
/**
|
|
145
154
|
* The words `validateSelectSql` rejects unquoted for a dialect, lowercase: the shared denylist
|
|
146
155
|
* and the spec's `extraForbiddenKeywords`, plus every built-in spec's for an id that is no
|
|
147
|
-
* built-in engine family
|
|
156
|
+
* built-in engine family, and T-SQL's lock hints wherever the SQL Server lexer runs. The
|
|
157
|
+
* NL→SQL prompt quotes names in this set.
|
|
148
158
|
*/
|
|
149
159
|
export function keywordsRejectedUnquoted(dialect) {
|
|
150
|
-
const
|
|
160
|
+
const words = denylistFor(dialect);
|
|
161
|
+
if (checkedAsTsql(dialect))
|
|
162
|
+
for (const hint of TSQL_LOCK_HINTS)
|
|
163
|
+
words.add(hint);
|
|
164
|
+
return words;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Whether `validateSelectSql` runs the SQL Server lexer, and so the T-SQL hint checks, for a
|
|
168
|
+
* dialect: `sqlserver`, and an id that is no built-in engine family, which is checked every
|
|
169
|
+
* engine's way. The NL→SQL prompt follows it (#319).
|
|
170
|
+
*/
|
|
171
|
+
export function checkedAsTsql(dialect) {
|
|
172
|
+
const profile = lexerProfileFor(dialect);
|
|
173
|
+
return !profile || profile.id === "sqlserver";
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The `SQL_FORBIDDEN_KEYWORD` denylist: the shared list and the spec's `extraForbiddenKeywords`,
|
|
177
|
+
* plus every built-in spec's for an id that is no built-in engine family.
|
|
178
|
+
*/
|
|
179
|
+
function denylistFor(dialect) {
|
|
180
|
+
const keywords = new Set([...BASE_FORBIDDEN, ...(dialect.extraForbiddenKeywords ?? [])].map((w) => w.toLowerCase()));
|
|
151
181
|
if (!lexerProfileFor(dialect))
|
|
152
182
|
for (const word of allBuiltInKeywords())
|
|
153
183
|
keywords.add(word.toLowerCase());
|
|
154
184
|
return keywords;
|
|
155
185
|
}
|
|
156
|
-
function forbiddenKeywordsFor(dialect) {
|
|
157
|
-
return new Set([...BASE_FORBIDDEN, ...(dialect.extraForbiddenKeywords ?? [])].map((w) => w.toLowerCase()));
|
|
158
|
-
}
|
|
159
186
|
function blockedFunctionsFor(dialect) {
|
|
160
187
|
return new Set((dialect.blockedFunctions ?? []).map((w) => w.toLowerCase()));
|
|
161
188
|
}
|
|
@@ -165,6 +192,77 @@ function allBuiltInKeywords() {
|
|
|
165
192
|
function allBuiltInFunctions() {
|
|
166
193
|
return Object.values(BUILT_IN_DIALECTS).flatMap((d) => [...(d.blockedFunctions ?? [])]);
|
|
167
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Locking clauses, as the unquoted words they are written with: Postgres and CockroachDB
|
|
197
|
+
* `FOR UPDATE`, `FOR NO KEY UPDATE`, `FOR SHARE`, `FOR KEY SHARE`; MySQL and MariaDB
|
|
198
|
+
* `FOR UPDATE`, `FOR SHARE` (MySQL), `LOCK IN SHARE MODE`. Matched on every lexer, at any
|
|
199
|
+
* depth, because the engines allow them in subqueries and CTEs (#319).
|
|
200
|
+
*/
|
|
201
|
+
const LOCKING_CLAUSES = [
|
|
202
|
+
["for", "update"],
|
|
203
|
+
["for", "no", "key", "update"],
|
|
204
|
+
["for", "share"],
|
|
205
|
+
["for", "key", "share"],
|
|
206
|
+
["lock", "in", "share", "mode"],
|
|
207
|
+
];
|
|
208
|
+
/**
|
|
209
|
+
* T-SQL table hints that take or hold locks. Matched as unquoted words anywhere on the SQL
|
|
210
|
+
* Server lexer, because SQL Server also takes them without `WITH` (`FROM t (UPDLOCK)`), and
|
|
211
|
+
* quoted when one stands alone in parentheses right after a name, at any depth and with trailing
|
|
212
|
+
* spaces, which SQL Server also reads as the hint (`FROM t ([UPDLOCK])`, `t (("UPDLOCK "))`).
|
|
213
|
+
* SQL Server 2022 refused quoted hints in other positions: inside `WITH`, in a list, and after an
|
|
214
|
+
* alias or a function call.
|
|
215
|
+
* `NOLOCK`, `READUNCOMMITTED`, `READPAST`, `READCOMMITTEDLOCK` and `NOWAIT` stay allowed.
|
|
216
|
+
*/
|
|
217
|
+
const TSQL_LOCK_HINTS = new Set([
|
|
218
|
+
"updlock", "xlock", "holdlock", "paglock", "tablock", "tablockx", "rowlock", "serializable", "repeatableread",
|
|
219
|
+
]);
|
|
220
|
+
/** The first locking clause or T-SQL lock hint in the SQL, uppercase (`FOR SHARE`), or undefined. */
|
|
221
|
+
function findLockingRead(tokens, profile) {
|
|
222
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
223
|
+
const t = tokens[i];
|
|
224
|
+
const hint = profile.id === "sqlserver" ? tsqlLockHint(tokens, i) : undefined;
|
|
225
|
+
if (hint)
|
|
226
|
+
return hint;
|
|
227
|
+
if (t.kind !== "word")
|
|
228
|
+
continue;
|
|
229
|
+
for (const clause of LOCKING_CLAUSES) {
|
|
230
|
+
if (clause.every((word, k) => tokens[i + k]?.kind === "word" && tokens[i + k].lower === word)) {
|
|
231
|
+
return clause.join(" ").toUpperCase();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
/** Printable ASCII: the only spellings the hint check can match by name. */
|
|
238
|
+
const PRINTABLE_ASCII = /^[\x20-\x7e]*$/;
|
|
239
|
+
/**
|
|
240
|
+
* What makes token `i` a lock hint, or undefined: an unquoted word, or a quoted name alone in
|
|
241
|
+
* parentheses after a name, that spells a hint or isn't printable ASCII. SQL Server compares
|
|
242
|
+
* hint names loosely: it ignores some characters (U+FEFF, U+200D, `Ș`) and reads others as
|
|
243
|
+
* ASCII letters (`ʟ` as L), so only a printable-ASCII name can be checked by its spelling.
|
|
244
|
+
*/
|
|
245
|
+
function tsqlLockHint(tokens, i) {
|
|
246
|
+
const t = tokens[i];
|
|
247
|
+
const quoted = t.kind === "quoted_identifier";
|
|
248
|
+
if (!(t.kind === "word" || (quoted && isLoneQuotedHint(tokens, i))))
|
|
249
|
+
return undefined;
|
|
250
|
+
if (!PRINTABLE_ASCII.test(t.value)) {
|
|
251
|
+
return `the ${quoted ? "quoted name" : "unquoted name"} ${t.text}, which SQL Server may read as a lock hint`;
|
|
252
|
+
}
|
|
253
|
+
// SQL Server ignores trailing spaces when it compares a quoted name, so `[UPDLOCK ]` is the hint.
|
|
254
|
+
// Past the ASCII check, a space is the only whitespace left, so `trimEnd()` strips just those.
|
|
255
|
+
const name = quoted ? t.lower.trimEnd() : t.lower;
|
|
256
|
+
return TSQL_LOCK_HINTS.has(name) ? `the table hint ${name.toUpperCase()}` : undefined;
|
|
257
|
+
}
|
|
258
|
+
/** `name ( [hint] )` or `name (( [hint] ))`: a quoted identifier alone in parentheses right after a name. */
|
|
259
|
+
function isLoneQuotedHint(tokens, i) {
|
|
260
|
+
let depth = 1;
|
|
261
|
+
while (isPunct(tokens[i - depth], "(") && isPunct(tokens[i + depth], ")"))
|
|
262
|
+
depth++;
|
|
263
|
+
const before = tokens[i - depth];
|
|
264
|
+
return depth > 1 && (before?.kind === "word" || before?.kind === "quoted_identifier");
|
|
265
|
+
}
|
|
168
266
|
function isPunct(t, text) {
|
|
169
267
|
return t?.kind === "punct" && t.text === text;
|
|
170
268
|
}
|
|
@@ -196,6 +294,7 @@ export function buildSelectGuardrailExplanation(validatedSql) {
|
|
|
196
294
|
"single_statement",
|
|
197
295
|
"no_line_or_block_comments",
|
|
198
296
|
"leading_select_or_with",
|
|
297
|
+
"no_locking_reads",
|
|
199
298
|
"no_blocked_write_or_ddl_keywords",
|
|
200
299
|
"no_blocked_side_effect_functions",
|
|
201
300
|
],
|
package/dist/sql/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA8B,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,MAAM,EACN,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnF;;;;;;;GAOG;AACH,MAAM,cAAc,GAAsB;IACxC,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC;AAEF,SAAS,eAAe,CAAC,IAA2B,EAAE,OAAe,EAAE,IAAY;IACjF,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/core",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "AskDB core:
|
|
3
|
+
"version": "1.0.0-beta.46",
|
|
4
|
+
"description": "AskDB core: NL→SQL pipeline with the built-in SQL dialects. Provides ask() orchestration, schema/IR types, modes, logging, and retrieval input. Pass a dialect id such as \"postgres\" and bring your own model.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
7
7
|
"nl-to-sql",
|