@onivoro/onix 20.5.52 → 20.5.55

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onivoro/onix",
3
- "version": "20.5.52",
3
+ "version": "20.5.55",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
@@ -1,563 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const devkit_1 = require("@nx/devkit");
5
4
  const load_env_file_function_1 = require("../../functions/load-env-file.function");
6
5
  const executor_factory_function_1 = require("../../functions/executor-factory.function");
7
- const server_html_1 = require("@onivoro/server-html");
8
- const typeorm_1 = require("typeorm");
9
- const express = require("express");
6
+ const child_process_1 = require("child_process");
7
+ const os_1 = require("os");
10
8
  exports.default = (0, executor_factory_function_1.executorFactory)((options, context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
- const { envFile = '/Users/leenorris/github.com/silvertek-us/silvertek/.env.colleran.collerancompanies.com', host = 'PG_HOST', database = 'PG_DB', password = 'PG_PASSWORD', port = 'PG_PORT', username = 'PG_USER', type = 'postgres' } = options || {};
12
- // Load environment file if provided
9
+ const { envFile, host, db, password, port, user, type, httpPort } = options || {};
13
10
  if (envFile) {
14
11
  (0, load_env_file_function_1.loadEnvFile)(envFile);
15
12
  }
16
- // Extract database configuration from options or environment variables
17
- const dbConfig = {
18
- host: process.env[host],
19
- port: process.env[port],
20
- username: process.env[username],
21
- password: process.env[password],
22
- database: process.env[database],
23
- type: type,
24
- ssl: (options === null || options === void 0 ? void 0 : options.ssl) !== undefined ? options.ssl : (process.env.DB_SSL === 'true' || process.env.DB_SSL === '1')
25
- };
26
- // Create TypeORM DataSource configuration
27
- const dataSourceConfig = {
28
- type: dbConfig.type,
29
- host: dbConfig.host,
30
- port: dbConfig.port,
31
- username: dbConfig.username,
32
- password: dbConfig.password,
33
- database: dbConfig.database,
34
- synchronize: false, // Never auto-sync in production
35
- logging: process.env.DB_LOGGING === 'true',
36
- ssl: dbConfig.ssl ? { rejectUnauthorized: false } : false,
37
- // Empty entities array since we're doing raw queries for database introspection
38
- entities: [],
39
- // Set reasonable connection pool settings
40
- extra: {
41
- max: 10,
42
- min: 1,
43
- acquireTimeoutMillis: 30000,
44
- createTimeoutMillis: 30000,
45
- destroyTimeoutMillis: 5000,
46
- idleTimeoutMillis: 30000,
47
- reapIntervalMillis: 1000,
48
- createRetryIntervalMillis: 100
49
- }
50
- };
51
- devkit_1.logger.info(`Creating DataSource with configuration:`);
52
- devkit_1.logger.info(`- Type: ${dataSourceConfig.type}`);
53
- devkit_1.logger.info(`- Host: ${dataSourceConfig.host}`);
54
- devkit_1.logger.info(`- Port: ${dataSourceConfig.port}`);
55
- devkit_1.logger.info(`- Database: ${dataSourceConfig.database}`);
56
- devkit_1.logger.info(`- Username: ${dataSourceConfig.username}`);
57
- devkit_1.logger.info(`- SSL: ${dataSourceConfig.ssl ? 'enabled' : 'disabled'}`);
58
- const dataSource = new typeorm_1.DataSource(dataSourceConfig);
59
- try {
60
- yield dataSource.initialize();
61
- devkit_1.logger.info('Database connection established');
62
- // Create Express server
63
- const app = express();
64
- app.use(express.json());
65
- app.use(express.urlencoded({ extended: true }));
66
- // Routes with error handling
67
- app.get('/', (req, res) => {
68
- try {
69
- res.send(getDatabaseClientUI());
70
- }
71
- catch (error) {
72
- devkit_1.logger.error(`Error serving UI: ${error.message}`);
73
- res.status(500).send('Internal Server Error');
74
- }
75
- });
76
- app.get('/api/tables', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
77
- try {
78
- const tablesHtml = yield getTables(dataSource);
79
- res.send(tablesHtml);
80
- }
81
- catch (error) {
82
- devkit_1.logger.error(`Error fetching tables: ${error.message}`);
83
- res.status(500).send(`<div class="error">Error loading tables: ${error.message}</div>`);
84
- }
85
- }));
86
- app.get('/api/table/:tableName', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
87
- try {
88
- const tableDataHtml = yield getTableData(dataSource, req.params.tableName);
89
- res.send(tableDataHtml);
90
- }
91
- catch (error) {
92
- devkit_1.logger.error(`Error fetching table data: ${error.message}`);
93
- res.status(500).send(`<div class="error">Error loading table data: ${error.message}</div>`);
94
- }
95
- }));
96
- app.get('/api/table/:tableName/structure', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
97
- try {
98
- const structureHtml = yield getTableStructure(dataSource, req.params.tableName);
99
- res.send(structureHtml);
100
- }
101
- catch (error) {
102
- devkit_1.logger.error(`Error fetching table structure: ${error.message}`);
103
- res.status(500).send(`<div class="error">Error loading table structure: ${error.message}</div>`);
104
- }
105
- }));
106
- app.post('/api/query', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
107
- try {
108
- const queryResultHtml = yield executeQuery(dataSource, req.body.query);
109
- res.send(queryResultHtml);
110
- }
111
- catch (error) {
112
- devkit_1.logger.error(`Error executing query: ${error.message}`);
113
- res.status(500).send(`<div class="error">Query error: ${error.message}</div>`);
114
- }
115
- }));
116
- const server = app.listen(3000, () => {
117
- devkit_1.logger.info('Database client UI available at http://localhost:3000');
118
- });
119
- // Keep the process running indefinitely
120
- const keepRunning = new Promise((resolve) => {
121
- const gracefulShutdown = (signal) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
122
- devkit_1.logger.info(`Received ${signal}, shutting down database client gracefully...`);
123
- try {
124
- // Close the HTTP server first (stop accepting new requests)
125
- yield new Promise((resolve, reject) => {
126
- server.close((err) => {
127
- if (err) {
128
- devkit_1.logger.error(`Error closing HTTP server: ${err.message}`);
129
- reject(err);
130
- }
131
- else {
132
- devkit_1.logger.info('HTTP server closed successfully');
133
- resolve();
134
- }
135
- });
136
- });
137
- // Close database connections
138
- if (dataSource && dataSource.isInitialized) {
139
- yield dataSource.destroy();
140
- devkit_1.logger.info('Database connection closed successfully');
141
- }
142
- devkit_1.logger.info('Graceful shutdown completed');
143
- resolve();
144
- }
145
- catch (error) {
146
- devkit_1.logger.error(`Error during graceful shutdown: ${error.message}`);
147
- resolve(); // Still resolve to exit the process
148
- }
149
- });
150
- process.on('SIGINT', () => gracefulShutdown('SIGINT'));
151
- process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
152
- // Handle uncaught exceptions
153
- process.on('uncaughtException', (error) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
154
- devkit_1.logger.error(`Uncaught exception: ${error.message}`);
155
- yield gracefulShutdown('uncaughtException');
156
- process.exit(1);
157
- }));
158
- // Handle unhandled promise rejections
159
- process.on('unhandledRejection', (reason, promise) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
160
- devkit_1.logger.error(`Unhandled rejection at: ${promise}, reason: ${reason}`);
161
- yield gracefulShutdown('unhandledRejection');
162
- process.exit(1);
163
- }));
164
- });
165
- // Wait indefinitely until process is terminated
166
- yield keepRunning;
13
+ const http = env(httpPort);
14
+ (0, child_process_1.execSync)(`docker` + ' ' + [
15
+ 'run',
16
+ `-p ${http}:${http}`,
17
+ `--env="DV_HOST=${env(host)}"`,
18
+ `--env="DV_DB=${env(db)}"`,
19
+ `--env="DV_PASSWORD=${env(password)}"`,
20
+ `--env="DV_PORT=${env(port)}"`,
21
+ `--env="DV_USER=${env(user)}"`,
22
+ `--env="DV_TYPE=${env(type)}"`,
23
+ `--env="PORT=${http}"`,
24
+ `icedlee337/datavore:${((0, os_1.arch)() === 'arm64') ? 'arm64v8' : 'amd64'}`
25
+ ].join(' '));
26
+ }));
27
+ function env(value) {
28
+ if (!value) {
29
+ return value;
167
30
  }
168
- catch (error) {
169
- devkit_1.logger.error('Failed to connect to database: ' + error.message);
170
- throw error;
31
+ if (value.toString().includes('process.env')) {
32
+ return eval(value);
171
33
  }
172
- }));
173
- function getDatabaseClientUI() {
174
- return (0, server_html_1.$html)({
175
- lang: 'en',
176
- children: [
177
- (0, server_html_1.$head)({
178
- children: [
179
- (0, server_html_1.$meta)({ charset: 'UTF-8' }),
180
- (0, server_html_1.$meta)({ name: 'viewport', content: 'width=device-width, initial-scale=1.0' }),
181
- (0, server_html_1.$title)({ textContent: 'TypeORM Database Client' }),
182
- (0, server_html_1.$script)({ src: 'https://unpkg.com/htmx.org@1.9.10' }),
183
- (0, server_html_1.$script)({ src: 'https://unpkg.com/alpinejs@3.13.5/dist/cdn.min.js', defer: true }),
184
- (0, server_html_1.$style)({
185
- textContent: `
186
- * { margin: 0; padding: 0; box-sizing: border-box; }
187
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #f5f5f5; }
188
- .container { display: flex; height: 100vh; }
189
- .sidebar { width: 300px; background: #fff; border-right: 1px solid #e0e0e0; overflow-y: auto; }
190
- .main { flex: 1; display: flex; flex-direction: column; }
191
- .header { background: #fff; padding: 1rem; border-bottom: 1px solid #e0e0e0; }
192
- .content { flex: 1; padding: 1rem; overflow: auto; }
193
- .table-list { padding: 1rem; }
194
- .table-item { padding: 0.5rem; cursor: pointer; border-radius: 4px; margin-bottom: 0.25rem; }
195
- .table-item:hover { background: #f0f0f0; }
196
- .table-item.active { background: #007acc; color: white; }
197
- .query-editor { margin-bottom: 1rem; }
198
- .query-editor textarea { width: 100%; height: 100px; padding: 0.5rem; border: 1px solid #ccc; border-radius: 4px; font-family: monospace; }
199
- .btn { padding: 0.5rem 1rem; background: #007acc; color: white; border: none; border-radius: 4px; cursor: pointer; }
200
- .btn:hover { background: #005a9e; }
201
- .table-container { background: white; border-radius: 4px; overflow: hidden; }
202
- table { width: 100%; border-collapse: collapse; }
203
- th, td { padding: 0.5rem; text-align: left; border-bottom: 1px solid #e0e0e0; }
204
- th { background: #f8f9fa; font-weight: 600; }
205
- .loading { text-align: center; padding: 2rem; color: #666; }
206
- .error { background: #fee; color: #c33; padding: 1rem; border-radius: 4px; margin-bottom: 1rem; }
207
- .tabs { display: flex; border-bottom: 1px solid #e0e0e0; }
208
- .tab { padding: 0.75rem 1rem; cursor: pointer; border-bottom: 2px solid transparent; }
209
- .tab.active { border-bottom-color: #007acc; color: #007acc; font-weight: 600; }
210
- .tab-content { display: none; }
211
- .tab-content.active { display: block; }
212
- `
213
- })
214
- ]
215
- }),
216
- (0, server_html_1.$body)({
217
- 'x-data': 'dbClient()',
218
- children: [
219
- (0, server_html_1.$div)({
220
- className: 'container',
221
- children: [
222
- // Sidebar
223
- (0, server_html_1.$div)({
224
- className: 'sidebar',
225
- children: [
226
- (0, server_html_1.$div)({
227
- className: 'table-list',
228
- children: [
229
- (0, server_html_1.$h3)({
230
- textContent: 'Tables',
231
- style: { marginBottom: '1rem', color: '#333' }
232
- }),
233
- (0, server_html_1.$div)({
234
- 'hx-get': '/api/tables',
235
- 'hx-trigger': 'load',
236
- 'hx-target': '#table-list',
237
- children: [
238
- (0, server_html_1.$div)({
239
- id: 'table-list',
240
- className: 'loading',
241
- textContent: 'Loading tables...'
242
- })
243
- ]
244
- })
245
- ]
246
- })
247
- ]
248
- }),
249
- // Main Content
250
- (0, server_html_1.$div)({
251
- className: 'main',
252
- children: [
253
- (0, server_html_1.$div)({
254
- className: 'header',
255
- children: [
256
- (0, server_html_1.$h1)({ textContent: 'TypeORM Database Client' })
257
- ]
258
- }),
259
- (0, server_html_1.$div)({
260
- className: 'content',
261
- children: [
262
- // Query Editor
263
- (0, server_html_1.$div)({
264
- className: 'query-editor',
265
- children: [
266
- (0, server_html_1.$textarea)({
267
- 'x-model': 'query',
268
- placeholder: 'Enter SQL query...'
269
- }),
270
- (0, server_html_1.$button)({
271
- className: 'btn',
272
- '@click': 'executeQuery()',
273
- style: { marginTop: '0.5rem' },
274
- textContent: 'Execute Query'
275
- })
276
- ]
277
- }),
278
- // Results Area
279
- (0, server_html_1.$div)({
280
- id: 'results-area',
281
- children: [
282
- (0, server_html_1.$div)({
283
- className: 'loading',
284
- textContent: 'Select a table or execute a query to see results'
285
- })
286
- ]
287
- })
288
- ]
289
- })
290
- ]
291
- })
292
- ]
293
- }),
294
- (0, server_html_1.$script)({
295
- textContent: `
296
- function dbClient() {
297
- return {
298
- query: '',
299
- selectedTable: '',
300
-
301
- selectTable(tableName) {
302
- this.selectedTable = tableName;
303
-
304
- // Update table list active state
305
- document.querySelectorAll('.table-item').forEach(item => {
306
- item.classList.remove('active');
307
- });
308
- event.target.classList.add('active');
309
-
310
- // Load table data with tabs
311
- htmx.ajax('GET', '/api/table/' + tableName, {
312
- target: '#results-area'
313
- });
314
- },
315
-
316
- executeQuery() {
317
- if (!this.query.trim()) return;
318
-
319
- htmx.ajax('POST', '/api/query', {
320
- target: '#results-area',
321
- values: { query: this.query }
322
- });
323
- },
324
-
325
- switchTab(tabName) {
326
- // Handle tab switching
327
- document.querySelectorAll('.tab').forEach(tab => {
328
- tab.classList.remove('active');
329
- });
330
- document.querySelectorAll('.tab-content').forEach(content => {
331
- content.classList.remove('active');
332
- });
333
-
334
- event.target.classList.add('active');
335
- document.getElementById(tabName + '-content').classList.add('active');
336
-
337
- // Load structure if structure tab is clicked
338
- if (tabName === 'structure' && this.selectedTable) {
339
- htmx.ajax('GET', '/api/table/' + this.selectedTable + '/structure', {
340
- target: '#structure-content'
341
- });
342
- }
343
- }
344
- }
345
- }
346
-
347
- // Make selectTable and switchTab globally available for HTMX
348
- window.selectTable = function(tableName) {
349
- document.querySelector('[x-data]').__x.$data.selectTable(tableName);
350
- };
351
-
352
- window.switchTab = function(tabName) {
353
- document.querySelector('[x-data]').__x.$data.switchTab(tabName);
354
- };
355
- `
356
- })
357
- ]
358
- })
359
- ]
360
- });
361
- }
362
- function getTables(dataSource) {
363
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
364
- try {
365
- const tables = yield dataSource.query(`
366
- SELECT table_name
367
- FROM information_schema.tables
368
- WHERE table_schema = 'public'
369
- ORDER BY table_name
370
- `);
371
- const tableElements = tables.map(table => (0, server_html_1.$div)({
372
- className: 'table-item',
373
- onclick: `selectTable('${table.table_name}')`,
374
- textContent: table.table_name
375
- }));
376
- return tableElements.join('');
377
- }
378
- catch (error) {
379
- return (0, server_html_1.$div)({
380
- className: 'error',
381
- textContent: `Error loading tables: ${error.message}`
382
- });
383
- }
384
- });
385
- }
386
- function getTableData(dataSource, tableName) {
387
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
388
- try {
389
- const data = yield dataSource.query(`SELECT * FROM "${tableName}" LIMIT 100`);
390
- if (data.length === 0) {
391
- const tabs = (0, server_html_1.$div)({
392
- className: 'tabs',
393
- children: [
394
- (0, server_html_1.$div)({
395
- className: 'tab active',
396
- onclick: "switchTab('data')",
397
- textContent: 'Data'
398
- }),
399
- (0, server_html_1.$div)({
400
- className: 'tab',
401
- onclick: "switchTab('structure')",
402
- textContent: 'Structure'
403
- })
404
- ]
405
- });
406
- const dataContent = (0, server_html_1.$div)({
407
- id: 'data-content',
408
- className: 'tab-content active',
409
- children: [
410
- (0, server_html_1.$p)({
411
- style: { padding: '2rem', textAlign: 'center', color: '#666' },
412
- textContent: `No data found in table "${tableName}"`
413
- })
414
- ]
415
- });
416
- const structureContent = (0, server_html_1.$div)({
417
- id: 'structure-content',
418
- className: 'tab-content'
419
- });
420
- return tabs + dataContent + structureContent;
421
- }
422
- const columns = Object.keys(data[0]);
423
- const headerRow = (0, server_html_1.$tr)({
424
- children: columns.map(col => (0, server_html_1.$th)({ textContent: col }))
425
- });
426
- const rows = data.map(row => (0, server_html_1.$tr)({
427
- children: columns.map(col => (0, server_html_1.$td)({
428
- innerHTML: row[col] !== null ? String(row[col]) : '<em>NULL</em>'
429
- }))
430
- }));
431
- const tabs = (0, server_html_1.$div)({
432
- className: 'tabs',
433
- children: [
434
- (0, server_html_1.$div)({
435
- className: 'tab active',
436
- onclick: "switchTab('data')",
437
- textContent: 'Data'
438
- }),
439
- (0, server_html_1.$div)({
440
- className: 'tab',
441
- onclick: "switchTab('structure')",
442
- textContent: 'Structure'
443
- })
444
- ]
445
- });
446
- const dataContent = (0, server_html_1.$div)({
447
- id: 'data-content',
448
- className: 'tab-content active',
449
- children: [
450
- (0, server_html_1.$div)({
451
- className: 'table-container',
452
- children: [
453
- (0, server_html_1.$table)({
454
- children: [
455
- (0, server_html_1.$thead)({ children: [headerRow] }),
456
- (0, server_html_1.$tbody)({ children: rows })
457
- ]
458
- })
459
- ]
460
- })
461
- ]
462
- });
463
- const structureContent = (0, server_html_1.$div)({
464
- id: 'structure-content',
465
- className: 'tab-content'
466
- });
467
- return tabs + dataContent + structureContent;
468
- }
469
- catch (error) {
470
- return (0, server_html_1.$div)({
471
- className: 'error',
472
- textContent: `Error loading table data: ${error.message}`
473
- });
474
- }
475
- });
476
- }
477
- function getTableStructure(dataSource, tableName) {
478
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
479
- try {
480
- const columns = yield dataSource.query(`
481
- SELECT column_name, data_type, is_nullable, column_default
482
- FROM information_schema.columns
483
- WHERE table_name = $1
484
- ORDER BY ordinal_position
485
- `, [tableName]);
486
- const headerRow = (0, server_html_1.$tr)({
487
- children: [
488
- (0, server_html_1.$th)({ textContent: 'Column' }),
489
- (0, server_html_1.$th)({ textContent: 'Type' }),
490
- (0, server_html_1.$th)({ textContent: 'Nullable' }),
491
- (0, server_html_1.$th)({ textContent: 'Default' })
492
- ]
493
- });
494
- const rows = columns.map(col => (0, server_html_1.$tr)({
495
- children: [
496
- (0, server_html_1.$td)({ textContent: col.column_name }),
497
- (0, server_html_1.$td)({ textContent: col.data_type }),
498
- (0, server_html_1.$td)({ textContent: col.is_nullable }),
499
- (0, server_html_1.$td)({
500
- innerHTML: col.column_default || '<em>NULL</em>'
501
- })
502
- ]
503
- }));
504
- return (0, server_html_1.$div)({
505
- className: 'table-container',
506
- children: [
507
- (0, server_html_1.$table)({
508
- children: [
509
- (0, server_html_1.$thead)({ children: [headerRow] }),
510
- (0, server_html_1.$tbody)({ children: rows })
511
- ]
512
- })
513
- ]
514
- });
515
- }
516
- catch (error) {
517
- return (0, server_html_1.$div)({
518
- className: 'error',
519
- textContent: `Error loading table structure: ${error.message}`
520
- });
521
- }
522
- });
523
- }
524
- function executeQuery(dataSource, query) {
525
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
526
- try {
527
- const result = yield dataSource.query(query);
528
- if (!Array.isArray(result) || result.length === 0) {
529
- return (0, server_html_1.$div)({
530
- style: { padding: '2rem', textAlign: 'center', color: '#666' },
531
- textContent: 'Query executed successfully. No results to display.'
532
- });
533
- }
534
- const columns = Object.keys(result[0]);
535
- const headerRow = (0, server_html_1.$tr)({
536
- children: columns.map(col => (0, server_html_1.$th)({ textContent: col }))
537
- });
538
- const rows = result.map(row => (0, server_html_1.$tr)({
539
- children: columns.map(col => (0, server_html_1.$td)({
540
- innerHTML: row[col] !== null ? String(row[col]) : '<em>NULL</em>'
541
- }))
542
- }));
543
- return (0, server_html_1.$div)({
544
- className: 'table-container',
545
- children: [
546
- (0, server_html_1.$table)({
547
- children: [
548
- (0, server_html_1.$thead)({ children: [headerRow] }),
549
- (0, server_html_1.$tbody)({ children: rows })
550
- ]
551
- })
552
- ]
553
- });
554
- }
555
- catch (error) {
556
- return (0, server_html_1.$div)({
557
- className: 'error',
558
- textContent: `Query error: ${error.message}`
559
- });
560
- }
561
- });
562
34
  }
563
35
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../onix/src/executors/typeorm-db-client/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../onix/src/executors/typeorm-db-client/executor.ts"],"names":[],"mappings":";;;AAEA,mFAAqE;AACrE,yFAA4E;AAC5E,iDAAyC;AACzC,2BAA0B;AAE1B,kBAAe,IAAA,2CAAe,EAAC,CAC7B,OAAuB,EACvB,OAAwB,EACxB,EAAE;IACF,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACT,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,oCAAW,EAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE3B,IAAA,wBAAQ,EAAC,QAAQ,GAAG,GAAG,GAAG;QACxB,KAAK;QACL,MAAM,IAAI,IAAI,IAAI,EAAE;QACpB,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG;QAC9B,gBAAgB,GAAG,CAAC,EAAE,CAAC,GAAG;QAC1B,sBAAsB,GAAG,CAAC,QAAQ,CAAC,GAAG;QACtC,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG;QAC9B,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG;QAC9B,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG;QAC9B,eAAe,IAAI,GAAG;QACtB,uBAAuB,CAAC,IAAA,SAAI,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE;KACpE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEf,CAAC,CAAA,CAAC,CAAC;AAEH,SAAS,GAAG,CAAC,KAAa;IACxB,IAAG,CAAC,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export interface ExecutorSchema {
2
+ db: string;
2
3
  envFile?: string;
3
- host?: string;
4
- port?: number;
5
- username?: string;
6
- password?: string;
7
- database?: string;
8
- type?: string;
9
- ssl?: boolean;
4
+ host: string;
5
+ httpPort: string;
6
+ password: string;
7
+ port: string;
8
+ type: string;
9
+ user: string;
10
10
  }
@@ -11,40 +11,48 @@
11
11
  },
12
12
  "host": {
13
13
  "type": "string",
14
- "description": "Database host (defaults to localhost or DB_HOST env var)",
15
- "default": "localhost"
14
+ "description": "Database host"
16
15
  },
17
16
  "port": {
18
- "type": "number",
19
- "description": "Database port (defaults to 5432 or DB_PORT env var)",
20
- "default": 5432
17
+ "type": "string",
18
+ "description": "Database port"
19
+ },
20
+ "httpPort": {
21
+ "type": "string",
22
+ "description": "Local port to accept HTTP traffic"
21
23
  },
22
- "username": {
24
+ "user": {
23
25
  "type": "string",
24
- "description": "Database username (defaults to postgres or DB_USERNAME/DB_USER env var)",
25
- "default": "postgres"
26
+ "description": "Database username"
26
27
  },
27
28
  "password": {
28
29
  "type": "string",
29
- "description": "Database password (defaults to empty or DB_PASSWORD env var)",
30
- "default": ""
30
+ "description": "Database password"
31
31
  },
32
- "database": {
32
+ "db": {
33
33
  "type": "string",
34
- "description": "Database name (defaults to postgres or DB_DATABASE/DB_NAME env var)",
35
- "default": "postgres"
34
+ "description": "Database name"
36
35
  },
37
36
  "type": {
38
37
  "type": "string",
39
- "description": "Database type (defaults to postgres or DB_TYPE env var)",
40
- "default": "postgres",
41
- "enum": ["postgres", "mysql", "mariadb", "sqlite", "mssql", "oracle"]
42
- },
43
- "ssl": {
44
- "type": "boolean",
45
- "description": "Enable SSL connection (defaults to false or DB_SSL env var)",
46
- "default": false
38
+ "description": "Database type",
39
+ "enum": [
40
+ "postgres",
41
+ "mysql",
42
+ "mariadb",
43
+ "sqlite",
44
+ "mssql",
45
+ "oracle"
46
+ ]
47
47
  }
48
48
  },
49
- "required": []
50
- }
49
+ "required": [
50
+ "db",
51
+ "host",
52
+ "httpPort",
53
+ "password",
54
+ "port",
55
+ "type",
56
+ "user"
57
+ ]
58
+ }