@askdb/http-api 1.0.0-beta.43 → 1.0.0-beta.44
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 +11 -5
- package/dist/bin.js +40 -6
- package/dist/bin.js.map +1 -1
- package/dist/server.d.ts +16 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +204 -97
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +15 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -13
package/README.md
CHANGED
|
@@ -28,11 +28,15 @@ Dev watch (runs with `apps/http-api` as the working directory):
|
|
|
28
28
|
pnpm -C apps/http-api dev:watch
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Point the server at a schema with `--schema-path` or `host.schemaPath` in `askdb.config.ts`. The binary loads `askdb.config.*` / `.config/askdb.*` from the current working directory via [`@askdb/config`](https://www.npmjs.com/package/@askdb/config) after resolving `.env` candidates (repo root, cwd, package dir). Shell / `.env` variables only take effect when the config maps them with `env(...)`:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
// askdb.config.ts
|
|
35
|
+
host: { schemaPath: env("ASKDB_SCHEMA_PATH") },
|
|
36
|
+
```
|
|
32
37
|
|
|
33
38
|
```bash
|
|
34
|
-
|
|
35
|
-
# ASKDB_SCHEMA_PATH=fixtures/schemas/orders-users.schema.json
|
|
39
|
+
node apps/http-api/dist/bin.js --schema-path fixtures/schemas/orders-users.schema
|
|
36
40
|
```
|
|
37
41
|
|
|
38
42
|
Health check:
|
|
@@ -60,8 +64,10 @@ Notes:
|
|
|
60
64
|
- **Correlation**: if you omit `x-correlation-id`, the server generates one and returns it.
|
|
61
65
|
- **Mode**: optional `x-askdb-mode` header (body `mode` wins if present).
|
|
62
66
|
- **Execution**: not supported. Retired execution controls return `400`; review generated SQL and run any approved query outside AskDB under your own database roles, read-only controls, tenant policy, and audit logging.
|
|
63
|
-
- **Generation config**: set `
|
|
64
|
-
- **Schema config (recommended)**: set `
|
|
67
|
+
- **Generation config**: set `ai.provider` / `ai.providerConfig` in `askdb.config.ts` (for tests/dev, set `dev.mockSql` to bypass live model calls). The server does not read `ASKDB_MOCK_SQL` from the shell; map it in the config with `dev: { mockSql: env("ASKDB_MOCK_SQL") }` if you want that.
|
|
68
|
+
- **Schema config (recommended)**: set `host.schemaPath` in `askdb.config.ts` (or pass `--schema-path`) to an AskDB Schema v2 directory, bundled JSON file, or `schema.json`. Per-request `schemaJson` overrides are rejected with `403 schema_override_disabled` unless you set `httpApi.allowSchemaOverride: true`.
|
|
69
|
+
- **Timeouts**: the model call is aborted after `httpApi.requestTimeoutMs` (default `60000`, at most `2147483647`) and the request returns `502 sql_generation_error`.
|
|
70
|
+
- **Errors**: status codes come from the error type. Model-provider failures return a generic `502`, and unexpected failures return a generic `500`. Every non-`2xx` `POST /ask` response is logged as `askdb.run.error` under the response's `correlationId`, with the full error for failures inside `ask()`, except last-resort `500`s (an error that escapes the handler), which are written to stderr.
|
|
65
71
|
|
|
66
72
|
## Ask (Node)
|
|
67
73
|
|
package/dist/bin.js
CHANGED
|
@@ -25,19 +25,53 @@ if (cliOptions.help) {
|
|
|
25
25
|
const pkgEnv = resolve(here, "../.env");
|
|
26
26
|
// Prefer repo root `.env`, but be resilient to different working directories.
|
|
27
27
|
const candidates = [repoRootEnv, cwdEnv, pkgEnv].filter((p) => existsSync(p));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
try {
|
|
29
|
+
bootstrapAskDbEnv({
|
|
30
|
+
cwd: process.cwd(),
|
|
31
|
+
dotenvCandidatePaths: candidates.length > 0 ? candidates : undefined,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
process.stderr.write(`askdb-http: ${formatError(error)}\n`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Defensive: bootstrap installs only flattened, already-validated values (an invalid
|
|
40
|
+
// `httpApi.requestTimeoutMs` fails above), so this is not expected to throw.
|
|
41
|
+
let httpApi;
|
|
42
|
+
try {
|
|
43
|
+
({ httpApi } = getAskDbRuntimeConfig());
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
process.stderr.write(`askdb-http: ${formatError(error)}\n`);
|
|
47
|
+
process.exit(1);
|
|
32
48
|
}
|
|
33
|
-
const { httpApi } = getAskDbRuntimeConfig();
|
|
34
49
|
const app = createAskDbHttpServer({
|
|
35
50
|
port: cliOptions.port ?? httpApi.listen.port,
|
|
36
51
|
host: cliOptions.host ?? httpApi.listen.host,
|
|
37
52
|
schemaPath: cliOptions.schemaPath,
|
|
38
53
|
});
|
|
39
|
-
|
|
54
|
+
try {
|
|
55
|
+
await app.listen();
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
process.stderr.write(`askdb-http: ${formatListenError(error, app.host, app.port)}\n`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
40
61
|
console.log(`AskDB HTTP API listening on http://${app.host}:${app.port}`);
|
|
62
|
+
function formatListenError(error, host, port) {
|
|
63
|
+
const code = error?.code;
|
|
64
|
+
if (code === "EADDRINUSE") {
|
|
65
|
+
return `cannot listen on ${host}:${port} — address already in use. Pick another port with --port or httpApi.listen.port.`;
|
|
66
|
+
}
|
|
67
|
+
if (code === "EACCES") {
|
|
68
|
+
return `cannot listen on ${host}:${port} — permission denied. Use a port above 1023 or run with the required privileges.`;
|
|
69
|
+
}
|
|
70
|
+
if (code === "EADDRNOTAVAIL") {
|
|
71
|
+
return `cannot listen on ${host}:${port} — address not available on this machine. Check --host or httpApi.listen.host.`;
|
|
72
|
+
}
|
|
73
|
+
return `cannot listen on ${host}:${port} — ${formatError(error)}`;
|
|
74
|
+
}
|
|
41
75
|
function parseOptions(argv) {
|
|
42
76
|
const opts = {};
|
|
43
77
|
for (let i = 0; i < argv.length; i += 1) {
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AASpD,IAAI,UAAsB,CAAC;AAC3B,IAAI,CAAC;IACH,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,CAAC;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kFAAkF;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAExC,8EAA8E;IAC9E,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { AskHttpErrorResponse } from "./types.js";
|
|
2
3
|
export type AskDbHttpServerOptions = {
|
|
3
4
|
/** Default: 3000 */
|
|
4
5
|
port?: number;
|
|
@@ -9,6 +10,20 @@ export type AskDbHttpServerOptions = {
|
|
|
9
10
|
/** Default: 1 MiB */
|
|
10
11
|
maxBodyBytes?: number;
|
|
11
12
|
};
|
|
13
|
+
type MappedError = {
|
|
14
|
+
status: number;
|
|
15
|
+
error: AskHttpErrorResponse["error"];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Map an error from `askdb.ask()` to an HTTP status + client-safe body. Classification is by
|
|
19
|
+
* error type only. Messages from the model provider are never returned to the client (they
|
|
20
|
+
* can echo request details or credential fragments); unknown errors get a generic message.
|
|
21
|
+
*/
|
|
22
|
+
/** @internal Exported for unit tests; not re-exported from the package entry point. */
|
|
23
|
+
export declare function mapAskError(e: unknown, ctx: {
|
|
24
|
+
timedOut: boolean;
|
|
25
|
+
timeoutMs: number;
|
|
26
|
+
}): MappedError;
|
|
12
27
|
export declare function createAskDbHttpServer(options?: AskDbHttpServerOptions): {
|
|
13
28
|
host: string;
|
|
14
29
|
port: number;
|
|
@@ -16,4 +31,5 @@ export declare function createAskDbHttpServer(options?: AskDbHttpServerOptions):
|
|
|
16
31
|
listen: () => Promise<void>;
|
|
17
32
|
close: () => Promise<void>;
|
|
18
33
|
};
|
|
34
|
+
export {};
|
|
19
35
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA0BjE,OAAO,KAAK,EAAE,oBAAoB,EAA0C,MAAM,YAAY,CAAC;AAO/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yHAAyH;IACzH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA8FF,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAa5E;;;;GAIG;AACH,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAgElG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B;;;;;;EAgNzE"}
|
package/dist/server.js
CHANGED
|
@@ -2,13 +2,12 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { createServer as createNodeServer } from "node:http";
|
|
3
3
|
import { getAskDbRuntimeConfig } from "@askdb/config";
|
|
4
4
|
import { createAiRegistry, } from "@askdb/ai";
|
|
5
|
-
import { anthropicProvider } from "@askdb/ai-anthropic";
|
|
6
|
-
import { azureProvider } from "@askdb/ai-azure";
|
|
7
|
-
import { googleProvider } from "@askdb/ai-google";
|
|
8
|
-
import { openaiProvider } from "@askdb/ai-openai";
|
|
9
5
|
import { createAskDb, DialectNotSupportedError, ModelNotConfiguredError, SchemaLoadError, SchemaNotConfiguredError, } from "@askdb/client";
|
|
10
|
-
import {
|
|
11
|
-
|
|
6
|
+
import { ASKDB_MODES_V1, AskDbLogEvent, SensitiveReferenceError, SqlGenerationError, SqlValidationError, TenantGuardrailError, createAskDbLogger, parseAskDbModeV1, } from "@askdb/core";
|
|
7
|
+
// Batteries-included surface: every built-in provider is registered, and each
|
|
8
|
+
// loads its @ai-sdk/* package only when first used, so env config alone
|
|
9
|
+
// selects the provider.
|
|
10
|
+
const ai = createAiRegistry();
|
|
12
11
|
const DEFAULT_MAX_BODY_BYTES = 1024 * 1024;
|
|
13
12
|
class RequestBodyTooLargeError extends Error {
|
|
14
13
|
limitBytes;
|
|
@@ -69,13 +68,104 @@ function getHeader(req, name) {
|
|
|
69
68
|
return v[0];
|
|
70
69
|
return undefined;
|
|
71
70
|
}
|
|
72
|
-
function badRequest(
|
|
73
|
-
return {
|
|
71
|
+
function badRequest(message) {
|
|
72
|
+
return { code: "bad_request", message };
|
|
74
73
|
}
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Resolve the caller-requested mode. Precedence: body `mode` → `x-askdb-mode` header.
|
|
76
|
+
* Returns `undefined` when the caller did not ask for one (the server then uses config
|
|
77
|
+
* `modes.askdbMode`, else {@link DEFAULT_ASKDB_MODE}). Throws on an invalid value (→ `400`).
|
|
78
|
+
*/
|
|
79
|
+
function resolveRequestMode(bodyMode, headerMode) {
|
|
80
|
+
if (bodyMode !== undefined && bodyMode !== null) {
|
|
81
|
+
if (typeof bodyMode !== "string" || bodyMode.trim() === "") {
|
|
82
|
+
throw new Error(`Invalid mode: ${JSON.stringify(bodyMode)}. Expected one of: ${ASKDB_MODES_V1.join(", ")}.`);
|
|
83
|
+
}
|
|
84
|
+
return parseAskDbModeV1(bodyMode);
|
|
85
|
+
}
|
|
86
|
+
if (headerMode !== undefined && headerMode.trim() !== "") {
|
|
87
|
+
return parseAskDbModeV1(headerMode);
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
/** `instanceof` with a `name` fallback, so duplicated package copies still classify correctly. */
|
|
92
|
+
function isErrorOf(e, ctor) {
|
|
93
|
+
return e instanceof ctor || (e instanceof Error && e.name === ctor.name);
|
|
94
|
+
}
|
|
95
|
+
function causeMessage(e) {
|
|
96
|
+
const cause = e instanceof Error ? e.cause : undefined;
|
|
97
|
+
if (cause === undefined)
|
|
77
98
|
return undefined;
|
|
78
|
-
return
|
|
99
|
+
return cause instanceof Error ? cause.message : String(cause);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Map an error from `askdb.ask()` to an HTTP status + client-safe body. Classification is by
|
|
103
|
+
* error type only. Messages from the model provider are never returned to the client (they
|
|
104
|
+
* can echo request details or credential fragments); unknown errors get a generic message.
|
|
105
|
+
*/
|
|
106
|
+
/** @internal Exported for unit tests; not re-exported from the package entry point. */
|
|
107
|
+
export function mapAskError(e, ctx) {
|
|
108
|
+
if (isErrorOf(e, SqlGenerationError)) {
|
|
109
|
+
return {
|
|
110
|
+
status: 502,
|
|
111
|
+
error: {
|
|
112
|
+
code: "sql_generation_error",
|
|
113
|
+
message: ctx.timedOut
|
|
114
|
+
? `Model provider request timed out after ${ctx.timeoutMs} ms.`
|
|
115
|
+
: "Model provider request failed. See server logs for this correlationId.",
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (isErrorOf(e, SqlValidationError)) {
|
|
120
|
+
return { status: 400, error: { code: "sql_validation_error", message: e.message, rule: e.rule } };
|
|
121
|
+
}
|
|
122
|
+
if (isErrorOf(e, SensitiveReferenceError)) {
|
|
123
|
+
return { status: 422, error: { code: "guardrail_violation", message: e.message, rule: e.rule } };
|
|
124
|
+
}
|
|
125
|
+
if (isErrorOf(e, TenantGuardrailError)) {
|
|
126
|
+
return {
|
|
127
|
+
status: 422,
|
|
128
|
+
error: {
|
|
129
|
+
code: "guardrail_violation",
|
|
130
|
+
message: e.message,
|
|
131
|
+
...(e.warnings[0] ? { rule: e.warnings[0].rule } : {}),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (isErrorOf(e, SchemaNotConfiguredError)) {
|
|
136
|
+
return {
|
|
137
|
+
status: 400,
|
|
138
|
+
error: {
|
|
139
|
+
code: "bad_request",
|
|
140
|
+
message: "No schema configured. Set host.schemaPath / host.schemaJson in askdb.config.* (or start askdb-http with --schema-path).",
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (isErrorOf(e, SchemaLoadError)) {
|
|
145
|
+
return {
|
|
146
|
+
status: 400,
|
|
147
|
+
error: {
|
|
148
|
+
code: "schema_parse_error",
|
|
149
|
+
message: `schema parse error (${e.source}): ${e.cause instanceof Error ? e.cause.message : String(e.cause)}`,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (isErrorOf(e, ModelNotConfiguredError)) {
|
|
154
|
+
return {
|
|
155
|
+
status: 500,
|
|
156
|
+
error: {
|
|
157
|
+
code: "generation_not_configured",
|
|
158
|
+
message: "No AI model is configured on the server. Set ai.provider / ai.providerConfig in askdb.config.* (or dev.mockSql for tests).",
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (isErrorOf(e, DialectNotSupportedError)) {
|
|
163
|
+
return { status: 400, error: { code: "bad_request", message: e.message } };
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
status: 500,
|
|
167
|
+
error: { code: "internal_error", message: "Internal server error. See server logs for this correlationId." },
|
|
168
|
+
};
|
|
79
169
|
}
|
|
80
170
|
export function createAskDbHttpServer(options = {}) {
|
|
81
171
|
const host = options.host ?? "127.0.0.1";
|
|
@@ -87,10 +177,26 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
87
177
|
// process lifetime after bootstrap; the facade's internal cache handles
|
|
88
178
|
// subsequent requests.
|
|
89
179
|
let askdb;
|
|
90
|
-
const server = createNodeServer(
|
|
180
|
+
const server = createNodeServer((req, res) => {
|
|
181
|
+
const correlationId = getCorrelationId(req);
|
|
182
|
+
handleRequest(req, res, correlationId).catch((e) => {
|
|
183
|
+
// Last-resort guard: anything that escapes the handler becomes a generic 500
|
|
184
|
+
// instead of an unhandled rejection that would take the process down.
|
|
185
|
+
process.stderr.write(`askdb-http: unhandled error (correlationId=${correlationId}): ${e instanceof Error ? (e.stack ?? e.message) : String(e)}\n`);
|
|
186
|
+
if (!res.headersSent) {
|
|
187
|
+
writeError(res, 500, correlationId, {
|
|
188
|
+
code: "internal_error",
|
|
189
|
+
message: "Internal server error. See server logs for this correlationId.",
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
res.end();
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
async function handleRequest(req, res, correlationId) {
|
|
91
198
|
const method = req.method ?? "GET";
|
|
92
199
|
const url = req.url ?? "/";
|
|
93
|
-
const correlationId = getCorrelationId(req);
|
|
94
200
|
if (method === "GET" && url === "/health") {
|
|
95
201
|
writeJson(res, 200, { ok: true });
|
|
96
202
|
return;
|
|
@@ -106,62 +212,100 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
106
212
|
logFile: rt.logging.logFile,
|
|
107
213
|
logStdout: rt.logging.logStdout,
|
|
108
214
|
});
|
|
215
|
+
// Every non-2xx response from `POST /ask` is logged as `askdb.run.error` with its
|
|
216
|
+
// status and code. Requests rejected before the pipeline runs log the client message.
|
|
217
|
+
const reject = (status, error, errMessage = error.message) => {
|
|
218
|
+
logger.error({ event: AskDbLogEvent.RunError, status, code: error.code, errMessage }, "askdb http request rejected");
|
|
219
|
+
writeError(res, status, correlationId, error);
|
|
220
|
+
};
|
|
109
221
|
let body;
|
|
110
222
|
try {
|
|
111
223
|
body = await readJsonBody(req, maxBodyBytes);
|
|
112
224
|
}
|
|
113
225
|
catch (e) {
|
|
114
|
-
|
|
226
|
+
const errMessage = e instanceof Error ? e.message : String(e);
|
|
115
227
|
if (e instanceof RequestBodyTooLargeError) {
|
|
116
|
-
|
|
117
|
-
code: "payload_too_large",
|
|
118
|
-
message: `request body exceeds ${e.limitBytes} bytes`,
|
|
119
|
-
});
|
|
228
|
+
reject(413, { code: "payload_too_large", message: `request body exceeds ${e.limitBytes} bytes` }, errMessage);
|
|
120
229
|
return;
|
|
121
230
|
}
|
|
122
|
-
|
|
231
|
+
reject(400, badRequest("invalid JSON body"), errMessage);
|
|
123
232
|
return;
|
|
124
233
|
}
|
|
125
234
|
if (!body || typeof body !== "object") {
|
|
126
|
-
|
|
235
|
+
reject(400, badRequest("request body must be an object"));
|
|
127
236
|
return;
|
|
128
237
|
}
|
|
129
238
|
if (typeof body.question !== "string" || body.question.trim() === "") {
|
|
130
|
-
|
|
239
|
+
reject(400, badRequest("`question` is required"));
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if ("execute" in body || getHeader(req, "x-askdb-execute") !== undefined) {
|
|
243
|
+
reject(400, badRequest("Execution is not supported. This endpoint returns generated SQL only."));
|
|
131
244
|
return;
|
|
132
245
|
}
|
|
246
|
+
// Validate caller-controlled inputs up front so parser failures are the only
|
|
247
|
+
// thing that can become a 400 here — never a substring match on a downstream error.
|
|
248
|
+
let requestedMode;
|
|
133
249
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
250
|
+
requestedMode = resolveRequestMode(body.mode, getHeader(req, "x-askdb-mode"));
|
|
251
|
+
}
|
|
252
|
+
catch (e) {
|
|
253
|
+
reject(400, badRequest(e instanceof Error ? e.message : String(e)));
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// Config mode was validated when askdb.config.* was flattened.
|
|
257
|
+
const mode = requestedMode ?? parseAskDbModeV1(rt.modes.askdbMode);
|
|
258
|
+
// Strictly boolean (`null` counts as absent): `Boolean(...)` used to read a string or
|
|
259
|
+
// number as `true`, and ignoring one would silently send sensitive identifiers to the model.
|
|
260
|
+
for (const field of ["omitSensitiveFromPrompt", "explain"]) {
|
|
261
|
+
const value = body[field];
|
|
262
|
+
if (value !== undefined && value !== null && typeof value !== "boolean") {
|
|
263
|
+
reject(400, badRequest(`\`${field}\` must be a boolean (got ${typeof value}).`));
|
|
143
264
|
return;
|
|
144
265
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// When the caller supplied a schemaPath option, it takes precedence
|
|
152
|
-
// over host.schemaPath / ASKDB_SCHEMA_PATH in config.
|
|
153
|
-
schema: optionSchemaPath ? { path: optionSchemaPath } : undefined,
|
|
154
|
-
unknownDialect: "fallback-postgres",
|
|
155
|
-
});
|
|
266
|
+
}
|
|
267
|
+
let requestOverride;
|
|
268
|
+
if (body.schemaJson !== undefined && body.schemaJson !== null) {
|
|
269
|
+
if (typeof body.schemaJson !== "string") {
|
|
270
|
+
reject(400, badRequest("`schemaJson` must be a string containing a bundled AskDB schema artifact."));
|
|
271
|
+
return;
|
|
156
272
|
}
|
|
157
|
-
|
|
158
|
-
|
|
273
|
+
if (body.schemaJson.trim() !== "") {
|
|
274
|
+
if (!rt.httpApi.allowSchemaOverride) {
|
|
275
|
+
reject(403, {
|
|
276
|
+
code: "schema_override_disabled",
|
|
277
|
+
message: "Per-request `schemaJson` overrides are disabled on this server. Omit `schemaJson` to use the server-configured schema.",
|
|
278
|
+
});
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
requestOverride = body.schemaJson;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// Build the facade once per server instance (lazily on first request so
|
|
285
|
+
// it captures the stable runtime config).
|
|
286
|
+
if (!askdb) {
|
|
287
|
+
askdb = createAskDb({
|
|
288
|
+
config: rt,
|
|
289
|
+
registry: ai,
|
|
290
|
+
// When the caller supplied a schemaPath option, it takes precedence
|
|
291
|
+
// over host.schemaPath / ASKDB_SCHEMA_PATH in config.
|
|
292
|
+
schema: optionSchemaPath ? { path: optionSchemaPath } : undefined,
|
|
293
|
+
unknownDialect: "fallback-postgres",
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
logger.info({ event: AskDbLogEvent.RunStart, mode }, "askdb http run start");
|
|
297
|
+
const timeoutMs = rt.httpApi.requestTimeoutMs;
|
|
298
|
+
const abortSignal = AbortSignal.timeout(timeoutMs);
|
|
299
|
+
try {
|
|
159
300
|
const out = await askdb.ask(body.question, {
|
|
160
301
|
schema: requestOverride ? { json: requestOverride } : undefined,
|
|
161
302
|
logger,
|
|
162
|
-
mode
|
|
163
|
-
explain:
|
|
164
|
-
|
|
303
|
+
mode,
|
|
304
|
+
explain: body.explain === true,
|
|
305
|
+
// The facade treats config `modes.omitSensitiveFromPrompt` as a floor:
|
|
306
|
+
// a request can tighten it but never loosen it.
|
|
307
|
+
omitSensitiveIdentifiersFromNlToSqlPrompt: body.omitSensitiveFromPrompt === true,
|
|
308
|
+
abortSignal,
|
|
165
309
|
});
|
|
166
310
|
const payload = {
|
|
167
311
|
ok: true,
|
|
@@ -169,65 +313,28 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
169
313
|
sql: out.sql,
|
|
170
314
|
explain: out.explain,
|
|
171
315
|
usage: out.usage ?? null,
|
|
316
|
+
...(out.sensitiveGuardrail ? { sensitiveGuardrail: out.sensitiveGuardrail } : {}),
|
|
172
317
|
};
|
|
173
318
|
logger.info({ event: AskDbLogEvent.RunEnd, ok: true }, "askdb http run end");
|
|
174
319
|
writeJson(res, 200, payload);
|
|
175
320
|
return;
|
|
176
321
|
}
|
|
177
322
|
catch (e) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
if (e instanceof SchemaLoadError) {
|
|
192
|
-
writeError(res, 400, correlationId, {
|
|
193
|
-
code: "schema_parse_error",
|
|
194
|
-
message: `schema parse error (${e.source}): ${e.cause instanceof Error ? e.cause.message : String(e.cause)}`,
|
|
195
|
-
});
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
if (e instanceof ModelNotConfiguredError) {
|
|
199
|
-
writeError(res, 500, correlationId, {
|
|
200
|
-
code: "generation_not_configured",
|
|
201
|
-
message: `${msg} (or set ASKDB_MOCK_SQL).`,
|
|
202
|
-
});
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
logger.error({ event: AskDbLogEvent.RunError, errMessage: msg }, "askdb http run error");
|
|
206
|
-
if (e instanceof SqlValidationError) {
|
|
207
|
-
writeError(res, 400, correlationId, {
|
|
208
|
-
code: "sql_validation_error",
|
|
209
|
-
message: e.message,
|
|
210
|
-
rule: e.rule,
|
|
211
|
-
});
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
if (e instanceof SqlGenerationError) {
|
|
215
|
-
writeError(res, 502, correlationId, { code: "sql_generation_error", message: e.message });
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
if (e instanceof DialectNotSupportedError) {
|
|
219
|
-
writeError(res, 400, correlationId, { code: "bad_request", message: msg });
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
if (e instanceof AskDbError) {
|
|
223
|
-
// Default mapping for other core errors.
|
|
224
|
-
writeError(res, 500, correlationId, { code: "internal_error", message: e.message });
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
writeError(res, 500, correlationId, { code: "internal_error", message: msg });
|
|
323
|
+
const mapped = mapAskError(e, { timedOut: abortSignal.aborted, timeoutMs });
|
|
324
|
+
// Always log the full error server-side; the client only sees `mapped.error`.
|
|
325
|
+
logger.error({
|
|
326
|
+
event: AskDbLogEvent.RunError,
|
|
327
|
+
status: mapped.status,
|
|
328
|
+
code: mapped.error.code,
|
|
329
|
+
errName: e instanceof Error ? e.name : typeof e,
|
|
330
|
+
errMessage: e instanceof Error ? e.message : String(e),
|
|
331
|
+
...(causeMessage(e) !== undefined ? { causeMessage: causeMessage(e) } : {}),
|
|
332
|
+
...(mapped.status >= 500 && e instanceof Error && e.stack ? { errStack: e.stack } : {}),
|
|
333
|
+
}, "askdb http run error");
|
|
334
|
+
writeError(res, mapped.status, correlationId, mapped.error);
|
|
228
335
|
return;
|
|
229
336
|
}
|
|
230
|
-
}
|
|
337
|
+
}
|
|
231
338
|
return {
|
|
232
339
|
host,
|
|
233
340
|
port,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,EAGb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAahG,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,wBAAyB,SAAQ,KAAK;IACrB;IAArB,YAAqB,UAAkB;QACrC,KAAK,CAAC,wBAAwB,UAAU,QAAQ,CAAC,CAAC;QAD/B,eAAU,GAAV,UAAU,CAAQ;QAErC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,EAA4C;IAC9E,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAC5C,IACE,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,OAAO;QACf,GAAG,KAAK,QAAQ,EAChB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAI,GAAoB,EAAE,YAAoB;IACvE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1B,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,wBAAwB,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;IACjE,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CACjB,GAAmB,EACnB,MAAc,EACd,aAAqB,EACrB,KAAoC;IAEpC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAiC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,GAAoB,EAAE,IAAY;IACnD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,aAAqB,EAAE,OAAe;IACxD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,CAAqB;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkC,EAAE;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC;IAEpE,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,uBAAuB;IACvB,IAAI,KAAiD,CAAC;IAEtD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAC3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACxC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,aAAa;YACb,KAAK,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO;YAC3B,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;SAChC,CAAC,CAAC;QAEH,IAAI,IAAoB,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,YAAY,CAAiB,GAAG,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACzF,mBAAmB,CACpB,CAAC;YACF,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;gBAC1C,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,wBAAwB,CAAC,CAAC,UAAU,QAAQ;iBACtD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACrE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzF,MAAM,IAAI,GAAgB,aAAa,IAAI,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEhF,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,uEAAuE;iBACjF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,wEAAwE;YACxE,0CAA0C;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,WAAW,CAAC;oBAClB,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,EAAE;oBACZ,oEAAoE;oBACpE,sDAAsD;oBACtD,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;oBACjE,cAAc,EAAE,mBAAmB;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,EACvC,sBAAsB,CACvB,CAAC;YAEF,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAErG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACzC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/D,MAAM;gBACN,IAAI,EAAE,IAAI,IAAI,kBAAkB;gBAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC9B,yCAAyC,EAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;aACjF,CAAC,CAAC;YAEH,MAAM,OAAO,GAA2B;gBACtC,EAAE,EAAE,IAAI;gBACR,aAAa;gBACb,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;aACzB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC7E,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,+FAA+F;YAC/F,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;gBAC1C,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,aAAa;oBACnB,OAAO,EACL,4HAA4H;iBAC/H,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,uBAAuB,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;iBAC7G,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,YAAY,uBAAuB,EAAE,CAAC;gBACzC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,GAAG,GAAG,2BAA2B;iBAC3C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAEzF,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;gBACpC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;gBACpC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YACD,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;gBAC1C,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;gBAC5B,yCAAyC;gBACzC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QACJ,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import type { AskDbModeV1, AskUsage } from "@askdb/core";
|
|
1
|
+
import type { AskDbModeV1, AskUsage, SensitiveGuardrailResult } from "@askdb/core";
|
|
2
2
|
export type AskHttpRequest = {
|
|
3
3
|
question: string;
|
|
4
4
|
/**
|
|
5
5
|
* Optional override: AskDB Schema v2 bundled JSON as a string.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Rejected with `403 schema_override_disabled` unless the server sets
|
|
8
|
+
* `httpApi.allowSchemaOverride: true`. Preferred: configure a server-default
|
|
9
|
+
* schema (`host.schemaPath`) and omit this field in requests.
|
|
9
10
|
*/
|
|
10
11
|
schemaJson?: string;
|
|
11
12
|
explain?: boolean;
|
|
12
13
|
mode?: AskDbModeV1;
|
|
14
|
+
/**
|
|
15
|
+
* Omit sensitive identifiers from the NL→SQL prompt for this request. Can only
|
|
16
|
+
* tighten the server's `modes.omitSensitiveFromPrompt` — `false` never loosens it.
|
|
17
|
+
* Any value other than a boolean (or `null`) is rejected with `400 bad_request`.
|
|
18
|
+
*/
|
|
13
19
|
omitSensitiveFromPrompt?: boolean;
|
|
14
20
|
};
|
|
15
21
|
export type AskHttpSuccessResponse = {
|
|
@@ -18,12 +24,17 @@ export type AskHttpSuccessResponse = {
|
|
|
18
24
|
sql: string;
|
|
19
25
|
explain?: unknown;
|
|
20
26
|
usage: AskUsage | null;
|
|
27
|
+
/**
|
|
28
|
+
* Sensitive-identifier check over `sql`. Present when the schema marks at least one
|
|
29
|
+
* table/column `sensitive`; `passed: false` means the SQL references one of them.
|
|
30
|
+
*/
|
|
31
|
+
sensitiveGuardrail?: SensitiveGuardrailResult;
|
|
21
32
|
};
|
|
22
33
|
export type AskHttpErrorResponse = {
|
|
23
34
|
ok: false;
|
|
24
35
|
correlationId: string;
|
|
25
36
|
error: {
|
|
26
|
-
code: "not_found" | "bad_request" | "payload_too_large" | "schema_parse_error" | "generation_not_configured" | "sql_validation_error" | "sql_generation_error" | "internal_error";
|
|
37
|
+
code: "not_found" | "bad_request" | "payload_too_large" | "schema_parse_error" | "schema_override_disabled" | "generation_not_configured" | "sql_validation_error" | "guardrail_violation" | "sql_generation_error" | "internal_error";
|
|
27
38
|
message: string;
|
|
28
39
|
rule?: string;
|
|
29
40
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,KAAK,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QACL,IAAI,EACA,WAAW,GACX,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,0BAA0B,GAC1B,2BAA2B,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/http-api",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.44",
|
|
4
4
|
"description": "AskDB HTTP API: minimal HTTP wrapper around @askdb/core. POST /ask returns checked SQL only.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
@@ -48,24 +48,23 @@
|
|
|
48
48
|
"NOTICE"
|
|
49
49
|
],
|
|
50
50
|
"engines": {
|
|
51
|
-
"node": ">=22.
|
|
51
|
+
"node": ">=22.23.4"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"ai": "^
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"@askdb/ai
|
|
59
|
-
"@askdb/
|
|
60
|
-
"@askdb/
|
|
61
|
-
"@askdb/
|
|
62
|
-
"
|
|
63
|
-
"@askdb/config": "1.0.0-beta.12"
|
|
54
|
+
"@ai-sdk/anthropic": "^4.0.94",
|
|
55
|
+
"@ai-sdk/azure": "^4.0.114",
|
|
56
|
+
"@ai-sdk/google": "^4.0.109",
|
|
57
|
+
"@ai-sdk/openai": "^4.0.106",
|
|
58
|
+
"@askdb/ai": "0.1.0-beta.8",
|
|
59
|
+
"@askdb/client": "1.0.0-beta.7",
|
|
60
|
+
"@askdb/config": "1.0.0-beta.13",
|
|
61
|
+
"@askdb/core": "1.0.0-beta.44",
|
|
62
|
+
"ai": "^7.0.51"
|
|
64
63
|
},
|
|
65
64
|
"devDependencies": {
|
|
66
65
|
"tsx": "^4.23.15",
|
|
67
66
|
"typescript": "^6.0.3",
|
|
68
|
-
"vitest": "^5.0.
|
|
67
|
+
"vitest": "^5.0.5"
|
|
69
68
|
},
|
|
70
69
|
"scripts": {
|
|
71
70
|
"build": "tsc -p tsconfig.build.json",
|