@@ -11,17 +11,45 @@ import { importDumpRoute } from "./import/dump";
1111import { importTableFromJsonRoute } from "./import/json" ;
1212import { importTableFromCsvRoute } from "./import/csv" ;
1313
14+ export interface HandlerConfig {
15+ adminAuthorizationToken : string ;
16+ outerbaseApiKey ?: string ;
17+ enableAllowlist ?: boolean ;
18+ enableRls ?: boolean ;
19+
20+ externalDbType ?: string ;
21+
22+ externalDbHost ?: string ;
23+ externalDbPort ?: number ;
24+ externalDbUser ?: string ;
25+ externalDbPassword ?: string ;
26+ externalDbName ?: string ;
27+ externalDbDefaultSchema ?: string ;
28+
29+ externalDbMongodbUri ?: string ;
30+
31+ externalDbTursoUri ?: string ;
32+ externalDbTursoToken ?: string ;
33+
34+ externalDbCloudflareApiKey ?: string ;
35+ externalDbCloudflareAccountId ?: string ;
36+ externalDbCloudflareDatabaseId ?: string ;
37+
38+ externalDbStarbaseUri ?: string ;
39+ externalDbStarbaseToken ?: string ;
40+ }
41+
1442export class Handler {
1543 private liteREST ?: LiteREST ;
1644 private dataSource ?: DataSource ;
17- private env ?: Env ;
45+ private config ?: HandlerConfig ;
1846
1947 constructor ( ) { }
2048
21- public async handle ( request : Request , dataSource : DataSource , env : Env ) : Promise < Response > {
49+ public async handle ( request : Request , dataSource : DataSource , config : HandlerConfig ) : Promise < Response > {
2250 this . dataSource = dataSource ;
23- this . liteREST = new LiteREST ( dataSource , env ) ;
24- this . env = env ;
51+ this . liteREST = new LiteREST ( dataSource , config ) ;
52+ this . config = config ;
2553 const url = new URL ( request . url ) ;
2654
2755 if ( request . method === 'POST' && url . pathname === '/query/raw' ) {
@@ -113,15 +141,15 @@ export class Handler {
113141 return { sql, params } ;
114142 } ) ;
115143
116- const response = await executeTransaction ( queries , isRaw , this . dataSource , this . env ) ;
144+ const response = await executeTransaction ( queries , isRaw , this . dataSource , this . config ) ;
117145 return createResponse ( response , undefined , 200 ) ;
118146 } else if ( typeof sql !== 'string' || ! sql . trim ( ) ) {
119147 return createResponse ( undefined , 'Invalid or empty "sql" field.' , 400 ) ;
120148 } else if ( params !== undefined && ! Array . isArray ( params ) && typeof params !== 'object' ) {
121149 return createResponse ( undefined , 'Invalid "params" field. Must be an array or object.' , 400 ) ;
122150 }
123151
124- const response = await executeQuery ( sql , params , isRaw , this . dataSource , this . env ) ;
152+ const response = await executeQuery ( sql , params , isRaw , this . dataSource , this . config ) ;
125153 return createResponse ( response , undefined , 200 ) ;
126154 } catch ( error : any ) {
127155 console . error ( 'Query Route Error:' , error ) ;
0 commit comments