@askdb/http-api 1.0.0-beta.43 → 1.0.0-beta.45
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 +23 -6
- package/dist/bin.js +45 -11
- package/dist/bin.js.map +1 -1
- package/dist/server.d.ts +18 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +213 -100
- 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:
|
|
@@ -41,6 +45,17 @@ Health check:
|
|
|
41
45
|
curl -sS http://127.0.0.1:3000/health
|
|
42
46
|
```
|
|
43
47
|
|
|
48
|
+
## Embed in your own process
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { createAskDbHttpServer } from "@askdb/http-api";
|
|
52
|
+
|
|
53
|
+
const server = createAskDbHttpServer({ port: 3000 });
|
|
54
|
+
await server.listen();
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`createAskDbHttpServer()` uses the config your process already loaded with `bootstrapAskDbEnv()` from `@askdb/config`. If there is none, it loads `.env` and `askdb.config.*` from the working directory, and throws when it finds no config. Omitted `port` and `host` options fall back to `httpApi.listen.*`. See the [HTTP API reference](https://askdb.tools/reference/http-api/).
|
|
58
|
+
|
|
44
59
|
## Ask (curl)
|
|
45
60
|
|
|
46
61
|
```bash
|
|
@@ -58,10 +73,12 @@ JSON
|
|
|
58
73
|
Notes:
|
|
59
74
|
|
|
60
75
|
- **Correlation**: if you omit `x-correlation-id`, the server generates one and returns it.
|
|
61
|
-
- **Mode**: optional `x-askdb-mode` header (body `mode` wins if present).
|
|
76
|
+
- **Mode**: optional `x-askdb-mode` header (body `mode` wins if present). A request mode can only tighten config `modes.askdbMode` (default `schema_only`), never loosen it.
|
|
62
77
|
- **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 `
|
|
78
|
+
- **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.
|
|
79
|
+
- **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`.
|
|
80
|
+
- **Timeouts**: the model call is aborted after `httpApi.requestTimeoutMs` (default `60000`, at most `2147483647`) and the request returns `502 sql_generation_error`.
|
|
81
|
+
- **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
82
|
|
|
66
83
|
## Ask (Node)
|
|
67
84
|
|
package/dist/bin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { bootstrapAskDbEnv
|
|
2
|
+
import { bootstrapAskDbEnv } from "@askdb/config";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { dirname, resolve } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
@@ -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
|
-
|
|
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
|
+
// The server reuses the runtime installed above and falls back to `httpApi.listen.*` for
|
|
40
|
+
// an omitted flag. Defensive: bootstrap installs only flattened, already-validated values (an
|
|
41
|
+
// invalid `httpApi.requestTimeoutMs` fails above), so building the server is not expected to throw.
|
|
42
|
+
let app;
|
|
43
|
+
try {
|
|
44
|
+
app = createAskDbHttpServer({
|
|
45
|
+
port: cliOptions.port,
|
|
46
|
+
host: cliOptions.host,
|
|
47
|
+
schemaPath: cliOptions.schemaPath,
|
|
31
48
|
});
|
|
32
49
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
catch (error) {
|
|
51
|
+
process.stderr.write(`askdb-http: ${formatError(error)}\n`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
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,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { AskHttpErrorResponse } from "./types.js";
|
|
2
3
|
export type AskDbHttpServerOptions = {
|
|
3
|
-
/**
|
|
4
|
+
/** Port to listen on. Precedence: this option → `httpApi.listen.port` config → 3000. */
|
|
4
5
|
port?: number;
|
|
5
|
-
/**
|
|
6
|
+
/** Bind address. Precedence: this option → `httpApi.listen.host` config → 127.0.0.1. */
|
|
6
7
|
host?: string;
|
|
7
8
|
/** Server-default schema artifact path. Precedence: this option → `host.schemaPath` config → `ASKDB_SCHEMA_PATH` env. */
|
|
8
9
|
schemaPath?: string;
|
|
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;AAyBjE,OAAO,KAAK,EAAE,oBAAoB,EAA0C,MAAM,YAAY,CAAC;AAO/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yHAAyH;IACzH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA+FF,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;;;;;;EAqNzE"}
|
package/dist/server.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { createServer as createNodeServer } from "node:http";
|
|
3
|
-
import { getAskDbRuntimeConfig } from "@askdb/config";
|
|
3
|
+
import { bootstrapAskDbEnv, getAskDbRuntimeConfig, isAskDbRuntimeInitialized } 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,17 +68,116 @@ 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 facade applies config
|
|
77
|
+
* `modes.askdbMode` (ADR 0025): a request mode can tighten it, never loosen it.
|
|
78
|
+
* Throws on an invalid value (→ `400`).
|
|
79
|
+
*/
|
|
80
|
+
function resolveRequestMode(bodyMode, headerMode) {
|
|
81
|
+
if (bodyMode !== undefined && bodyMode !== null) {
|
|
82
|
+
if (typeof bodyMode !== "string" || bodyMode.trim() === "") {
|
|
83
|
+
throw new Error(`Invalid mode: ${JSON.stringify(bodyMode)}. Expected one of: ${ASKDB_MODES_V1.join(", ")}.`);
|
|
84
|
+
}
|
|
85
|
+
return parseAskDbModeV1(bodyMode);
|
|
86
|
+
}
|
|
87
|
+
if (headerMode !== undefined && headerMode.trim() !== "") {
|
|
88
|
+
return parseAskDbModeV1(headerMode);
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/** `instanceof` with a `name` fallback, so duplicated package copies still classify correctly. */
|
|
93
|
+
function isErrorOf(e, ctor) {
|
|
94
|
+
return e instanceof ctor || (e instanceof Error && e.name === ctor.name);
|
|
95
|
+
}
|
|
96
|
+
function causeMessage(e) {
|
|
97
|
+
const cause = e instanceof Error ? e.cause : undefined;
|
|
98
|
+
if (cause === undefined)
|
|
77
99
|
return undefined;
|
|
78
|
-
return
|
|
100
|
+
return cause instanceof Error ? cause.message : String(cause);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Map an error from `askdb.ask()` to an HTTP status + client-safe body. Classification is by
|
|
104
|
+
* error type only. Messages from the model provider are never returned to the client (they
|
|
105
|
+
* can echo request details or credential fragments); unknown errors get a generic message.
|
|
106
|
+
*/
|
|
107
|
+
/** @internal Exported for unit tests; not re-exported from the package entry point. */
|
|
108
|
+
export function mapAskError(e, ctx) {
|
|
109
|
+
if (isErrorOf(e, SqlGenerationError)) {
|
|
110
|
+
return {
|
|
111
|
+
status: 502,
|
|
112
|
+
error: {
|
|
113
|
+
code: "sql_generation_error",
|
|
114
|
+
message: ctx.timedOut
|
|
115
|
+
? `Model provider request timed out after ${ctx.timeoutMs} ms.`
|
|
116
|
+
: "Model provider request failed. See server logs for this correlationId.",
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (isErrorOf(e, SqlValidationError)) {
|
|
121
|
+
return { status: 400, error: { code: "sql_validation_error", message: e.message, rule: e.rule } };
|
|
122
|
+
}
|
|
123
|
+
if (isErrorOf(e, SensitiveReferenceError)) {
|
|
124
|
+
return { status: 422, error: { code: "guardrail_violation", message: e.message, rule: e.rule } };
|
|
125
|
+
}
|
|
126
|
+
if (isErrorOf(e, TenantGuardrailError)) {
|
|
127
|
+
return {
|
|
128
|
+
status: 422,
|
|
129
|
+
error: {
|
|
130
|
+
code: "guardrail_violation",
|
|
131
|
+
message: e.message,
|
|
132
|
+
...(e.warnings[0] ? { rule: e.warnings[0].rule } : {}),
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
if (isErrorOf(e, SchemaNotConfiguredError)) {
|
|
137
|
+
return {
|
|
138
|
+
status: 400,
|
|
139
|
+
error: {
|
|
140
|
+
code: "bad_request",
|
|
141
|
+
message: "No schema configured. Set host.schemaPath / host.schemaJson in askdb.config.* (or start askdb-http with --schema-path).",
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (isErrorOf(e, SchemaLoadError)) {
|
|
146
|
+
return {
|
|
147
|
+
status: 400,
|
|
148
|
+
error: {
|
|
149
|
+
code: "schema_parse_error",
|
|
150
|
+
message: `schema parse error (${e.source}): ${e.cause instanceof Error ? e.cause.message : String(e.cause)}`,
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
if (isErrorOf(e, ModelNotConfiguredError)) {
|
|
155
|
+
return {
|
|
156
|
+
status: 500,
|
|
157
|
+
error: {
|
|
158
|
+
code: "generation_not_configured",
|
|
159
|
+
message: "No AI model is configured on the server. Set ai.provider / ai.providerConfig in askdb.config.* (or dev.mockSql for tests).",
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (isErrorOf(e, DialectNotSupportedError)) {
|
|
164
|
+
return { status: 400, error: { code: "bad_request", message: e.message } };
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
status: 500,
|
|
168
|
+
error: { code: "internal_error", message: "Internal server error. See server logs for this correlationId." },
|
|
169
|
+
};
|
|
79
170
|
}
|
|
80
171
|
export function createAskDbHttpServer(options = {}) {
|
|
81
|
-
|
|
82
|
-
|
|
172
|
+
// A host that bootstrapped keeps its runtime. Otherwise load `.env` and askdb.config.* from
|
|
173
|
+
// the working directory, as the askdb-http binary does. A broken `.env` throws here rather
|
|
174
|
+
// than setting the host's `process.exitCode`.
|
|
175
|
+
if (!isAskDbRuntimeInitialized()) {
|
|
176
|
+
bootstrapAskDbEnv({ cwd: process.cwd(), dotenvNonFatal: false });
|
|
177
|
+
}
|
|
178
|
+
const { listen } = getAskDbRuntimeConfig().httpApi;
|
|
179
|
+
const host = options.host ?? listen.host;
|
|
180
|
+
const port = options.port ?? listen.port;
|
|
83
181
|
const optionSchemaPath = options.schemaPath;
|
|
84
182
|
const maxBodyBytes = options.maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES;
|
|
85
183
|
// The facade is constructed lazily on the first request so it captures the
|
|
@@ -87,10 +185,26 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
87
185
|
// process lifetime after bootstrap; the facade's internal cache handles
|
|
88
186
|
// subsequent requests.
|
|
89
187
|
let askdb;
|
|
90
|
-
const server = createNodeServer(
|
|
188
|
+
const server = createNodeServer((req, res) => {
|
|
189
|
+
const correlationId = getCorrelationId(req);
|
|
190
|
+
handleRequest(req, res, correlationId).catch((e) => {
|
|
191
|
+
// Last-resort guard: anything that escapes the handler becomes a generic 500
|
|
192
|
+
// instead of an unhandled rejection that would take the process down.
|
|
193
|
+
process.stderr.write(`askdb-http: unhandled error (correlationId=${correlationId}): ${e instanceof Error ? (e.stack ?? e.message) : String(e)}\n`);
|
|
194
|
+
if (!res.headersSent) {
|
|
195
|
+
writeError(res, 500, correlationId, {
|
|
196
|
+
code: "internal_error",
|
|
197
|
+
message: "Internal server error. See server logs for this correlationId.",
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
res.end();
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
async function handleRequest(req, res, correlationId) {
|
|
91
206
|
const method = req.method ?? "GET";
|
|
92
207
|
const url = req.url ?? "/";
|
|
93
|
-
const correlationId = getCorrelationId(req);
|
|
94
208
|
if (method === "GET" && url === "/health") {
|
|
95
209
|
writeJson(res, 200, { ok: true });
|
|
96
210
|
return;
|
|
@@ -106,62 +220,98 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
106
220
|
logFile: rt.logging.logFile,
|
|
107
221
|
logStdout: rt.logging.logStdout,
|
|
108
222
|
});
|
|
223
|
+
// Every non-2xx response from `POST /ask` is logged as `askdb.run.error` with its
|
|
224
|
+
// status and code. Requests rejected before the pipeline runs log the client message.
|
|
225
|
+
const reject = (status, error, errMessage = error.message) => {
|
|
226
|
+
logger.error({ event: AskDbLogEvent.RunError, status, code: error.code, errMessage }, "askdb http request rejected");
|
|
227
|
+
writeError(res, status, correlationId, error);
|
|
228
|
+
};
|
|
109
229
|
let body;
|
|
110
230
|
try {
|
|
111
231
|
body = await readJsonBody(req, maxBodyBytes);
|
|
112
232
|
}
|
|
113
233
|
catch (e) {
|
|
114
|
-
|
|
234
|
+
const errMessage = e instanceof Error ? e.message : String(e);
|
|
115
235
|
if (e instanceof RequestBodyTooLargeError) {
|
|
116
|
-
|
|
117
|
-
code: "payload_too_large",
|
|
118
|
-
message: `request body exceeds ${e.limitBytes} bytes`,
|
|
119
|
-
});
|
|
236
|
+
reject(413, { code: "payload_too_large", message: `request body exceeds ${e.limitBytes} bytes` }, errMessage);
|
|
120
237
|
return;
|
|
121
238
|
}
|
|
122
|
-
|
|
239
|
+
reject(400, badRequest("invalid JSON body"), errMessage);
|
|
123
240
|
return;
|
|
124
241
|
}
|
|
125
242
|
if (!body || typeof body !== "object") {
|
|
126
|
-
|
|
243
|
+
reject(400, badRequest("request body must be an object"));
|
|
127
244
|
return;
|
|
128
245
|
}
|
|
129
246
|
if (typeof body.question !== "string" || body.question.trim() === "") {
|
|
130
|
-
|
|
247
|
+
reject(400, badRequest("`question` is required"));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if ("execute" in body || getHeader(req, "x-askdb-execute") !== undefined) {
|
|
251
|
+
reject(400, badRequest("Execution is not supported. This endpoint returns generated SQL only."));
|
|
131
252
|
return;
|
|
132
253
|
}
|
|
254
|
+
// Validate caller-controlled inputs up front so parser failures are the only
|
|
255
|
+
// thing that can become a 400 here — never a substring match on a downstream error.
|
|
256
|
+
let requestedMode;
|
|
133
257
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
258
|
+
requestedMode = resolveRequestMode(body.mode, getHeader(req, "x-askdb-mode"));
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
261
|
+
reject(400, badRequest(e instanceof Error ? e.message : String(e)));
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
// Strictly boolean (`null` counts as absent): `Boolean(...)` used to read a string or
|
|
265
|
+
// number as `true`, and ignoring one would silently send sensitive identifiers to the model.
|
|
266
|
+
for (const field of ["omitSensitiveFromPrompt", "explain"]) {
|
|
267
|
+
const value = body[field];
|
|
268
|
+
if (value !== undefined && value !== null && typeof value !== "boolean") {
|
|
269
|
+
reject(400, badRequest(`\`${field}\` must be a boolean (got ${typeof value}).`));
|
|
143
270
|
return;
|
|
144
271
|
}
|
|
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
|
-
});
|
|
272
|
+
}
|
|
273
|
+
let requestOverride;
|
|
274
|
+
if (body.schemaJson !== undefined && body.schemaJson !== null) {
|
|
275
|
+
if (typeof body.schemaJson !== "string") {
|
|
276
|
+
reject(400, badRequest("`schemaJson` must be a string containing a bundled AskDB schema artifact."));
|
|
277
|
+
return;
|
|
156
278
|
}
|
|
157
|
-
|
|
158
|
-
|
|
279
|
+
if (body.schemaJson.trim() !== "") {
|
|
280
|
+
if (!rt.httpApi.allowSchemaOverride) {
|
|
281
|
+
reject(403, {
|
|
282
|
+
code: "schema_override_disabled",
|
|
283
|
+
message: "Per-request `schemaJson` overrides are disabled on this server. Omit `schemaJson` to use the server-configured schema.",
|
|
284
|
+
});
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
requestOverride = body.schemaJson;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// Build the facade once per server instance (lazily on first request so
|
|
291
|
+
// it captures the stable runtime config).
|
|
292
|
+
if (!askdb) {
|
|
293
|
+
askdb = createAskDb({
|
|
294
|
+
config: rt,
|
|
295
|
+
registry: ai,
|
|
296
|
+
// When the caller supplied a schemaPath option, it takes precedence
|
|
297
|
+
// over host.schemaPath / ASKDB_SCHEMA_PATH in config.
|
|
298
|
+
schema: optionSchemaPath ? { path: optionSchemaPath } : undefined,
|
|
299
|
+
unknownDialect: "fallback-postgres",
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
logger.info({ event: AskDbLogEvent.RunStart }, "askdb http run start");
|
|
303
|
+
const timeoutMs = rt.httpApi.requestTimeoutMs;
|
|
304
|
+
const abortSignal = AbortSignal.timeout(timeoutMs);
|
|
305
|
+
try {
|
|
159
306
|
const out = await askdb.ask(body.question, {
|
|
160
307
|
schema: requestOverride ? { json: requestOverride } : undefined,
|
|
161
308
|
logger,
|
|
162
|
-
mode:
|
|
163
|
-
explain:
|
|
164
|
-
|
|
309
|
+
...(requestedMode ? { mode: requestedMode } : {}),
|
|
310
|
+
explain: body.explain === true,
|
|
311
|
+
// The facade treats config `modes.omitSensitiveFromPrompt` as a floor:
|
|
312
|
+
// a request can tighten it but never loosen it.
|
|
313
|
+
omitSensitiveIdentifiersFromNlToSqlPrompt: body.omitSensitiveFromPrompt === true,
|
|
314
|
+
abortSignal,
|
|
165
315
|
});
|
|
166
316
|
const payload = {
|
|
167
317
|
ok: true,
|
|
@@ -169,65 +319,28 @@ export function createAskDbHttpServer(options = {}) {
|
|
|
169
319
|
sql: out.sql,
|
|
170
320
|
explain: out.explain,
|
|
171
321
|
usage: out.usage ?? null,
|
|
322
|
+
...(out.sensitiveGuardrail ? { sensitiveGuardrail: out.sensitiveGuardrail } : {}),
|
|
172
323
|
};
|
|
173
324
|
logger.info({ event: AskDbLogEvent.RunEnd, ok: true }, "askdb http run end");
|
|
174
325
|
writeJson(res, 200, payload);
|
|
175
326
|
return;
|
|
176
327
|
}
|
|
177
328
|
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 });
|
|
329
|
+
const mapped = mapAskError(e, { timedOut: abortSignal.aborted, timeoutMs });
|
|
330
|
+
// Always log the full error server-side; the client only sees `mapped.error`.
|
|
331
|
+
logger.error({
|
|
332
|
+
event: AskDbLogEvent.RunError,
|
|
333
|
+
status: mapped.status,
|
|
334
|
+
code: mapped.error.code,
|
|
335
|
+
errName: e instanceof Error ? e.name : typeof e,
|
|
336
|
+
errMessage: e instanceof Error ? e.message : String(e),
|
|
337
|
+
...(causeMessage(e) !== undefined ? { causeMessage: causeMessage(e) } : {}),
|
|
338
|
+
...(mapped.status >= 500 && e instanceof Error && e.stack ? { errStack: e.stack } : {}),
|
|
339
|
+
}, "askdb http run error");
|
|
340
|
+
writeError(res, mapped.status, correlationId, mapped.error);
|
|
228
341
|
return;
|
|
229
342
|
}
|
|
230
|
-
}
|
|
343
|
+
}
|
|
231
344
|
return {
|
|
232
345
|
host,
|
|
233
346
|
port,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
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.45",
|
|
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.9",
|
|
59
|
+
"@askdb/client": "1.0.0-beta.8",
|
|
60
|
+
"@askdb/config": "1.0.0-beta.14",
|
|
61
|
+
"@askdb/core": "1.0.0-beta.45",
|
|
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",
|