@channel.io/app-sdk-server 0.13.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/__tests__/datasource-runners.test.d.ts +2 -0
  2. package/dist/__tests__/datasource-runners.test.d.ts.map +1 -0
  3. package/dist/__tests__/datasource-runners.test.js +244 -0
  4. package/dist/__tests__/datasource-runners.test.js.map +1 -0
  5. package/dist/__tests__/datasource.test.d.ts +2 -0
  6. package/dist/__tests__/datasource.test.d.ts.map +1 -0
  7. package/dist/__tests__/datasource.test.js +152 -0
  8. package/dist/__tests__/datasource.test.js.map +1 -0
  9. package/dist/__tests__/testing-utils.test.js +1 -1
  10. package/dist/__tests__/testing-utils.test.js.map +1 -1
  11. package/dist/datasource/arrow.d.ts +27 -0
  12. package/dist/datasource/arrow.d.ts.map +1 -0
  13. package/dist/datasource/arrow.js +261 -0
  14. package/dist/datasource/arrow.js.map +1 -0
  15. package/dist/datasource/bigquery.d.ts +97 -0
  16. package/dist/datasource/bigquery.d.ts.map +1 -0
  17. package/dist/datasource/bigquery.js +297 -0
  18. package/dist/datasource/bigquery.js.map +1 -0
  19. package/dist/datasource/grpc.d.ts +28 -0
  20. package/dist/datasource/grpc.d.ts.map +1 -0
  21. package/dist/datasource/grpc.js +292 -0
  22. package/dist/datasource/grpc.js.map +1 -0
  23. package/dist/datasource/index.d.ts +8 -0
  24. package/dist/datasource/index.d.ts.map +1 -0
  25. package/dist/datasource/index.js +8 -0
  26. package/dist/datasource/index.js.map +1 -0
  27. package/dist/datasource/policy.d.ts +16 -0
  28. package/dist/datasource/policy.d.ts.map +1 -0
  29. package/dist/datasource/policy.js +112 -0
  30. package/dist/datasource/policy.js.map +1 -0
  31. package/dist/datasource/postgres.d.ts +32 -0
  32. package/dist/datasource/postgres.d.ts.map +1 -0
  33. package/dist/datasource/postgres.js +234 -0
  34. package/dist/datasource/postgres.js.map +1 -0
  35. package/dist/datasource/query-handlers.d.ts +32 -0
  36. package/dist/datasource/query-handlers.d.ts.map +1 -0
  37. package/dist/datasource/query-handlers.js +58 -0
  38. package/dist/datasource/query-handlers.js.map +1 -0
  39. package/dist/datasource/types.d.ts +134 -0
  40. package/dist/datasource/types.d.ts.map +1 -0
  41. package/dist/datasource/types.js +34 -0
  42. package/dist/datasource/types.js.map +1 -0
  43. package/dist/decorators/extension-names.d.ts +1 -1
  44. package/dist/decorators/extension-names.d.ts.map +1 -1
  45. package/dist/decorators/extension-names.js +1 -0
  46. package/dist/decorators/extension-names.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/nestjs/channel-app.controller.d.ts +2 -2
  52. package/dist/nestjs/channel-app.controller.d.ts.map +1 -1
  53. package/dist/nestjs/channel-app.controller.js.map +1 -1
  54. package/package.json +30 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigquery.js","sourceRoot":"","sources":["../../src/datasource/bigquery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import * as grpc from "@grpc/grpc-js";
2
+ import { DataSourceErrorCode, type DataSourceError, type DataSourceGrpcOptions, type DataSourceServiceHandlers, type ExecuteQueryRequest, type QueryChunk } from "./types.js";
3
+ declare const serviceName = "io.channel.datasource.v1.DataSourceService";
4
+ export declare const DataSourceServiceDefinition: {
5
+ ListTables: grpc.MethodDefinition<unknown, unknown>;
6
+ DescribeTable: grpc.MethodDefinition<unknown, unknown>;
7
+ SearchTables: grpc.MethodDefinition<unknown, unknown>;
8
+ ExecuteQuery: {
9
+ path: string;
10
+ requestStream: false;
11
+ responseStream: true;
12
+ requestSerialize: grpc.serialize<unknown>;
13
+ requestDeserialize: grpc.deserialize<ExecuteQueryRequest>;
14
+ responseSerialize: grpc.serialize<unknown>;
15
+ responseDeserialize: grpc.deserialize<QueryChunk>;
16
+ originalName: string;
17
+ };
18
+ };
19
+ export declare function createDataSourceGrpcServer(handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): grpc.Server;
20
+ export declare function addDataSourceService(server: grpc.Server, handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): void;
21
+ export declare function arrowChunk(dataBody: Uint8Array, dataHeader?: Uint8Array): QueryChunk;
22
+ export declare function errorChunk(code: DataSourceErrorCode, message: string, options?: {
23
+ retryable?: boolean;
24
+ upstream?: DataSourceError["upstream"];
25
+ }): QueryChunk;
26
+ export declare function toErrorChunk(error: unknown): QueryChunk;
27
+ export { serviceName as DataSourceGrpcServiceName };
28
+ //# sourceMappingURL=grpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EAEL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAmHpB,QAAA,MAAM,WAAW,+CAA+C,CAAC;AAcjE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CA0BN,CAAC;AAEnC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAAC,MAAM,CAIb;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAUN;AA8BD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAOpF;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAAO,GAC5E,UAAU,CASZ;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CASvD;AA8GD,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,292 @@
1
+ import * as grpc from "@grpc/grpc-js";
2
+ import protobuf from "protobufjs";
3
+ import { DataSourceExecutionError, DataSourceErrorCode, } from "./types.js";
4
+ const datasourceProto = `
5
+ syntax = "proto3";
6
+ package io.channel.datasource.v1;
7
+
8
+ service DataSourceService {
9
+ rpc ListTables(ListTablesRequest) returns (ListTablesResponse);
10
+ rpc DescribeTable(DescribeTableRequest) returns (TableDefinition);
11
+ rpc SearchTables(SearchTablesRequest) returns (SearchTablesResponse);
12
+ rpc ExecuteQuery(ExecuteQueryRequest) returns (stream QueryChunk);
13
+ }
14
+
15
+ message SessionContext {
16
+ string account = 1;
17
+ string channel_id = 2;
18
+ optional string kernel_token = 3;
19
+ string team_member_id = 4;
20
+ optional string datasource_token = 5;
21
+ }
22
+
23
+ message Table {
24
+ string name = 1;
25
+ string description = 2;
26
+ int64 estimated_row_count = 3;
27
+ int64 updated_at = 4;
28
+ int32 table_type = 5;
29
+ }
30
+
31
+ message Column {
32
+ string name = 1;
33
+ string type = 2;
34
+ bool nullable = 3;
35
+ string description = 4;
36
+ bool partition_key = 5;
37
+ int32 precision = 6;
38
+ int32 scale = 7;
39
+ }
40
+
41
+ message TableDefinition {
42
+ Table table = 1;
43
+ repeated Column columns = 2;
44
+ repeated string primary_key = 3;
45
+ }
46
+
47
+ message ListTablesRequest {
48
+ SessionContext session = 1;
49
+ string source_id = 2;
50
+ optional string table_name_filter_pattern = 3;
51
+ }
52
+
53
+ message ListTablesResponse {
54
+ repeated Table tables = 1;
55
+ }
56
+
57
+ message DescribeTableRequest {
58
+ SessionContext session = 1;
59
+ string source_id = 2;
60
+ string table = 3;
61
+ }
62
+
63
+ message SearchTablesRequest {
64
+ SessionContext session = 1;
65
+ string source_id = 2;
66
+ repeated string queries = 3;
67
+ int32 limit = 4;
68
+ }
69
+
70
+ message SearchTablesResponse {
71
+ repeated Table tables = 1;
72
+ }
73
+
74
+ message ExecuteQueryRequest {
75
+ SessionContext session = 1;
76
+ string source_id = 2;
77
+ string query = 3;
78
+ int64 row_limit = 4;
79
+ int64 byte_limit = 5;
80
+ int64 timeout_ms = 6;
81
+ }
82
+
83
+ message ArrowIpcMessage {
84
+ bytes data_header = 1;
85
+ bytes data_body = 2;
86
+ }
87
+
88
+ message QueryChunk {
89
+ oneof payload {
90
+ ArrowIpcMessage arrow = 1;
91
+ QueryResult result = 2;
92
+ DataSourceError error = 3;
93
+ }
94
+ }
95
+
96
+ message QueryResult {
97
+ int64 row_count = 1;
98
+ bool limit_exceeded = 2;
99
+ int64 execution_ms = 3;
100
+ }
101
+
102
+ message DataSourceError {
103
+ int32 code = 1;
104
+ string message = 2;
105
+ bool retryable = 3;
106
+ UpstreamError upstream = 4;
107
+ }
108
+
109
+ message UpstreamError {
110
+ string engine = 1;
111
+ string code = 2;
112
+ string message = 3;
113
+ }
114
+ `;
115
+ const root = protobuf.parse(datasourceProto).root;
116
+ const serviceName = "io.channel.datasource.v1.DataSourceService";
117
+ const servicePath = "/io.channel.datasource.v1.DataSourceService";
118
+ const messageTypes = {
119
+ ListTablesRequest: root.lookupType("io.channel.datasource.v1.ListTablesRequest"),
120
+ ListTablesResponse: root.lookupType("io.channel.datasource.v1.ListTablesResponse"),
121
+ DescribeTableRequest: root.lookupType("io.channel.datasource.v1.DescribeTableRequest"),
122
+ TableDefinition: root.lookupType("io.channel.datasource.v1.TableDefinition"),
123
+ SearchTablesRequest: root.lookupType("io.channel.datasource.v1.SearchTablesRequest"),
124
+ SearchTablesResponse: root.lookupType("io.channel.datasource.v1.SearchTablesResponse"),
125
+ ExecuteQueryRequest: root.lookupType("io.channel.datasource.v1.ExecuteQueryRequest"),
126
+ QueryChunk: root.lookupType("io.channel.datasource.v1.QueryChunk"),
127
+ };
128
+ export const DataSourceServiceDefinition = {
129
+ ListTables: unaryMethod("ListTables", messageTypes.ListTablesRequest, messageTypes.ListTablesResponse),
130
+ DescribeTable: unaryMethod("DescribeTable", messageTypes.DescribeTableRequest, messageTypes.TableDefinition),
131
+ SearchTables: unaryMethod("SearchTables", messageTypes.SearchTablesRequest, messageTypes.SearchTablesResponse),
132
+ ExecuteQuery: {
133
+ path: `${servicePath}/ExecuteQuery`,
134
+ requestStream: false,
135
+ responseStream: true,
136
+ requestSerialize: serializer(messageTypes.ExecuteQueryRequest),
137
+ requestDeserialize: deserializer(messageTypes.ExecuteQueryRequest),
138
+ responseSerialize: serializer(messageTypes.QueryChunk),
139
+ responseDeserialize: deserializer(messageTypes.QueryChunk),
140
+ originalName: "executeQuery",
141
+ },
142
+ };
143
+ export function createDataSourceGrpcServer(handlers, options = {}) {
144
+ const server = new grpc.Server();
145
+ addDataSourceService(server, handlers, options);
146
+ return server;
147
+ }
148
+ export function addDataSourceService(server, handlers, options = {}) {
149
+ const allowedSources = new Set(options.allowedSources ?? []);
150
+ server.addService(DataSourceServiceDefinition, {
151
+ ListTables: unaryHandler(handlers.listTables),
152
+ DescribeTable: unaryHandler(handlers.describeTable),
153
+ SearchTables: unaryHandler(handlers.searchTables),
154
+ ExecuteQuery: (call) => {
155
+ void handleExecuteQuery(call, handlers, allowedSources);
156
+ },
157
+ });
158
+ }
159
+ async function handleExecuteQuery(call, handlers, allowedSources) {
160
+ const validationError = validateExecuteQueryRequest(call.request, allowedSources);
161
+ if (validationError) {
162
+ writeTerminalError(call, errorChunk(validationError.code, validationError.message), validationError.status, validationError.message);
163
+ return;
164
+ }
165
+ const sink = {
166
+ send: (chunk) => call.write(chunk),
167
+ };
168
+ try {
169
+ await handlers.executeQuery(call.request, sink);
170
+ call.end();
171
+ }
172
+ catch (error) {
173
+ const message = error instanceof Error ? error.message : String(error);
174
+ writeTerminalError(call, toErrorChunk(error), grpc.status.UNKNOWN, message);
175
+ }
176
+ }
177
+ export function arrowChunk(dataBody, dataHeader) {
178
+ return {
179
+ arrow: {
180
+ ...(dataHeader ? { dataHeader } : {}),
181
+ dataBody,
182
+ },
183
+ };
184
+ }
185
+ export function errorChunk(code, message, options = {}) {
186
+ return {
187
+ error: {
188
+ code,
189
+ message,
190
+ retryable: options.retryable ?? false,
191
+ ...(options.upstream ? { upstream: options.upstream } : {}),
192
+ },
193
+ };
194
+ }
195
+ export function toErrorChunk(error) {
196
+ if (error instanceof DataSourceExecutionError) {
197
+ return errorChunk(error.code, error.message, {
198
+ retryable: error.retryable,
199
+ upstream: error.upstream,
200
+ });
201
+ }
202
+ const message = error instanceof Error ? error.message : String(error);
203
+ return errorChunk(DataSourceErrorCode.ExternalError, message);
204
+ }
205
+ function unaryMethod(name, requestType, responseType) {
206
+ return {
207
+ path: `${servicePath}/${name}`,
208
+ requestStream: false,
209
+ responseStream: false,
210
+ requestSerialize: serializer(requestType),
211
+ requestDeserialize: deserializer(requestType),
212
+ responseSerialize: serializer(responseType),
213
+ responseDeserialize: deserializer(responseType),
214
+ originalName: name.charAt(0).toLowerCase() + name.slice(1),
215
+ };
216
+ }
217
+ function unaryHandler(handler) {
218
+ return (call, callback) => {
219
+ void (async () => {
220
+ if (!handler) {
221
+ callback({ code: grpc.status.UNIMPLEMENTED, message: "method is not implemented" });
222
+ return;
223
+ }
224
+ try {
225
+ callback(null, await handler(call.request));
226
+ }
227
+ catch (error) {
228
+ callback({
229
+ code: grpc.status.INTERNAL,
230
+ message: error instanceof Error ? error.message : String(error),
231
+ });
232
+ }
233
+ })();
234
+ };
235
+ }
236
+ function serializer(type) {
237
+ return (value) => Buffer.from(type.encode(type.fromObject(value)).finish());
238
+ }
239
+ function deserializer(type) {
240
+ return (buffer) => type.toObject(type.decode(buffer), {
241
+ longs: Number,
242
+ enums: Number,
243
+ bytes: Uint8Array,
244
+ defaults: false,
245
+ arrays: true,
246
+ objects: true,
247
+ });
248
+ }
249
+ function validateExecuteQueryRequest(request, allowedSources) {
250
+ if (!request.session) {
251
+ return {
252
+ code: DataSourceErrorCode.InvalidArgument,
253
+ status: grpc.status.INVALID_ARGUMENT,
254
+ message: "session is required",
255
+ };
256
+ }
257
+ if (!request.sourceId) {
258
+ return {
259
+ code: DataSourceErrorCode.InvalidArgument,
260
+ status: grpc.status.INVALID_ARGUMENT,
261
+ message: "source_id is required",
262
+ };
263
+ }
264
+ if (allowedSources.size > 0 && !allowedSources.has(request.sourceId)) {
265
+ return {
266
+ code: DataSourceErrorCode.SourceNotFound,
267
+ status: grpc.status.NOT_FOUND,
268
+ message: "source_id is not registered",
269
+ };
270
+ }
271
+ if (!request.query?.trim()) {
272
+ return {
273
+ code: DataSourceErrorCode.InvalidArgument,
274
+ status: grpc.status.INVALID_ARGUMENT,
275
+ message: "query is required",
276
+ };
277
+ }
278
+ return undefined;
279
+ }
280
+ function writeTerminalError(call, chunk, code, message) {
281
+ call.write(chunk, () => {
282
+ call.emit("error", grpcStatus(code, message));
283
+ });
284
+ }
285
+ function grpcStatus(code, message) {
286
+ const error = new Error(message);
287
+ error.code = code;
288
+ error.details = message;
289
+ return error;
290
+ }
291
+ export { serviceName as DataSourceGrpcServiceName };
292
+ //# sourceMappingURL=grpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from "./types.js";
2
+ export * from "./arrow.js";
3
+ export * from "./policy.js";
4
+ export * from "./query-handlers.js";
5
+ export * from "./postgres.js";
6
+ export * from "./bigquery.js";
7
+ export * from "./grpc.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from "./types.js";
2
+ export * from "./arrow.js";
3
+ export * from "./policy.js";
4
+ export * from "./query-handlers.js";
5
+ export * from "./postgres.js";
6
+ export * from "./bigquery.js";
7
+ export * from "./grpc.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface DataSourceTableConfig {
2
+ name: string;
3
+ tenantColumn?: string;
4
+ }
5
+ export declare function isSingleReadOnlyStatement(query: string): boolean;
6
+ export declare function containsIdentifier(query: string, identifier: string): boolean;
7
+ export declare function referencedTables(query: string, explicitTableNames?: readonly string[], tables?: readonly DataSourceTableConfig[]): string[];
8
+ export declare function validateReadOnlyQuery(query: string, explicitTableNames?: readonly string[], tables?: readonly DataSourceTableConfig[]): void;
9
+ export declare function queryWithRowLimit(query: string, rowLimit: number | undefined): string;
10
+ export declare class DataSourceByteLimitTracker {
11
+ private readonly byteLimit;
12
+ private sentBytes;
13
+ constructor(byteLimit: number | undefined);
14
+ reserve(size: number): void;
15
+ }
16
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/datasource/policy.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA0BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,SAAS,MAAM,EAAO,EAC1C,MAAM,GAAE,SAAS,qBAAqB,EAAO,GAC5C,MAAM,EAAE,CAOV;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,SAAS,MAAM,EAAO,EAC1C,MAAM,GAAE,SAAS,qBAAqB,EAAO,GAC5C,IAAI,CAiCN;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOrF;AAED,qBAAa,0BAA0B;IAGzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,SAAS,CAAK;gBAEO,SAAS,EAAE,MAAM,GAAG,SAAS;IAE1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAa5B"}
@@ -0,0 +1,112 @@
1
+ import { DataSourceErrorCode, DataSourceExecutionError } from "./types.js";
2
+ const blockedSqlKeywords = [
3
+ "alter",
4
+ "analyze",
5
+ "begin",
6
+ "call",
7
+ "commit",
8
+ "copy",
9
+ "create",
10
+ "delete",
11
+ "drop",
12
+ "export",
13
+ "grant",
14
+ "import",
15
+ "insert",
16
+ "load",
17
+ "merge",
18
+ "revoke",
19
+ "rollback",
20
+ "set",
21
+ "truncate",
22
+ "update",
23
+ "vacuum",
24
+ ];
25
+ export function isSingleReadOnlyStatement(query) {
26
+ const normalized = trimSql(query);
27
+ if (!normalized || normalized.includes(";")) {
28
+ return false;
29
+ }
30
+ const lower = normalized.toLowerCase();
31
+ if (!lower.startsWith("select ") && !lower.startsWith("with ")) {
32
+ return false;
33
+ }
34
+ return !blockedSqlKeywords.some((keyword) => containsIdentifier(lower, keyword));
35
+ }
36
+ export function containsIdentifier(query, identifier) {
37
+ const escaped = identifier.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
38
+ return new RegExp(`(^|[^A-Za-z0-9_])${escaped}([^A-Za-z0-9_]|$)`, "i").test(query);
39
+ }
40
+ export function referencedTables(query, explicitTableNames = [], tables = []) {
41
+ if (explicitTableNames.length > 0) {
42
+ return [...explicitTableNames];
43
+ }
44
+ return tables
45
+ .filter((table) => table.name && containsIdentifier(query, table.name))
46
+ .map((table) => table.name);
47
+ }
48
+ export function validateReadOnlyQuery(query, explicitTableNames = [], tables = []) {
49
+ if (!query.trim()) {
50
+ throw new DataSourceExecutionError({
51
+ code: DataSourceErrorCode.InvalidArgument,
52
+ message: "query is required",
53
+ });
54
+ }
55
+ if (!isSingleReadOnlyStatement(query)) {
56
+ throw new DataSourceExecutionError({
57
+ code: DataSourceErrorCode.QueryInvalid,
58
+ message: "query must be a single read-only SELECT statement",
59
+ });
60
+ }
61
+ if (tables.length === 0) {
62
+ return;
63
+ }
64
+ const allowedTables = new Set(tables.map((table) => table.name.toLowerCase()));
65
+ const tableNames = referencedTables(query, explicitTableNames, tables);
66
+ if (tableNames.length === 0) {
67
+ throw new DataSourceExecutionError({
68
+ code: DataSourceErrorCode.QueryInvalid,
69
+ message: "query must reference a supported datasource table",
70
+ });
71
+ }
72
+ for (const tableName of tableNames) {
73
+ if (!allowedTables.has(tableName.toLowerCase())) {
74
+ throw new DataSourceExecutionError({
75
+ code: DataSourceErrorCode.TableNotFound,
76
+ message: `unsupported datasource table: ${tableName}`,
77
+ });
78
+ }
79
+ }
80
+ }
81
+ export function queryWithRowLimit(query, rowLimit) {
82
+ const normalized = trimSql(query);
83
+ const limit = Math.trunc(rowLimit ?? 0);
84
+ if (limit <= 0) {
85
+ return normalized;
86
+ }
87
+ return `SELECT * FROM (${normalized}) AS datasource_query LIMIT ${limit}`;
88
+ }
89
+ export class DataSourceByteLimitTracker {
90
+ byteLimit;
91
+ sentBytes = 0;
92
+ constructor(byteLimit) {
93
+ this.byteLimit = byteLimit;
94
+ }
95
+ reserve(size) {
96
+ const limit = Math.trunc(this.byteLimit ?? 0);
97
+ if (limit <= 0) {
98
+ return;
99
+ }
100
+ this.sentBytes += size;
101
+ if (this.sentBytes > limit) {
102
+ throw new DataSourceExecutionError({
103
+ code: DataSourceErrorCode.LimitExceeded,
104
+ message: "datasource query byte limit exceeded",
105
+ });
106
+ }
107
+ }
108
+ }
109
+ function trimSql(query) {
110
+ return query.trim().replace(/;+$/, "").trim();
111
+ }
112
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/datasource/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { DataSourceTableConfig } from "./policy.js";
2
+ import { type DataSourceQueryExecutor, type ExecuteQueryRequest, type QueryChunkSink } from "./types.js";
3
+ export interface PostgresPoolLike {
4
+ connect(): Promise<PostgresClientLike>;
5
+ end?(): Promise<void>;
6
+ }
7
+ export interface PostgresClientLike {
8
+ query(query: unknown, values?: unknown[]): unknown;
9
+ release(error?: unknown): void;
10
+ }
11
+ export interface PostgresDataSourceConfig {
12
+ sources: readonly PostgresDataSourceSourceConfig[];
13
+ defaultBatchSize?: number;
14
+ }
15
+ export interface PostgresDataSourceSourceConfig {
16
+ sourceId: string;
17
+ pool?: PostgresPoolLike;
18
+ connectionString?: string;
19
+ connectionStringEnv?: string;
20
+ tables?: readonly DataSourceTableConfig[];
21
+ batchSize?: number;
22
+ }
23
+ export declare function createPostgresDataSourceExecutor(config: PostgresDataSourceConfig): PostgresDataSourceExecutor;
24
+ export declare class PostgresDataSourceExecutor implements DataSourceQueryExecutor {
25
+ private readonly sources;
26
+ private readonly ownedPools;
27
+ constructor(config: PostgresDataSourceConfig);
28
+ executeQuery(request: ExecuteQueryRequest, sink: QueryChunkSink): Promise<void>;
29
+ close(): Promise<void>;
30
+ private poolForSource;
31
+ }
32
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/datasource/postgres.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,GAC/B,0BAA0B,CAE5B;AAED,qBAAa,0BAA2B,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAEtD,MAAM,EAAE,wBAAwB;IAatC,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4E/E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,aAAa;CAsB5B"}