digitaltwin-core 0.14.3 → 1.0.1
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 +218 -1
- package/dist/auth/apisix_parser.d.ts +56 -56
- package/dist/auth/apisix_parser.d.ts.map +1 -1
- package/dist/auth/apisix_parser.js +72 -86
- package/dist/auth/apisix_parser.js.map +1 -1
- package/dist/auth/auth_provider.d.ts +118 -0
- package/dist/auth/auth_provider.d.ts.map +1 -0
- package/dist/auth/auth_provider.js +8 -0
- package/dist/auth/auth_provider.js.map +1 -0
- package/dist/auth/auth_provider_factory.d.ts +91 -0
- package/dist/auth/auth_provider_factory.d.ts.map +1 -0
- package/dist/auth/auth_provider_factory.js +146 -0
- package/dist/auth/auth_provider_factory.js.map +1 -0
- package/dist/auth/index.d.ts +4 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/providers/gateway_auth_provider.d.ts +78 -0
- package/dist/auth/providers/gateway_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/gateway_auth_provider.js +109 -0
- package/dist/auth/providers/gateway_auth_provider.js.map +1 -0
- package/dist/auth/providers/index.d.ts +4 -0
- package/dist/auth/providers/index.d.ts.map +1 -0
- package/dist/auth/providers/index.js +4 -0
- package/dist/auth/providers/index.js.map +1 -0
- package/dist/auth/providers/jwt_auth_provider.d.ts +91 -0
- package/dist/auth/providers/jwt_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/jwt_auth_provider.js +204 -0
- package/dist/auth/providers/jwt_auth_provider.js.map +1 -0
- package/dist/auth/providers/no_auth_provider.d.ts +61 -0
- package/dist/auth/providers/no_auth_provider.d.ts.map +1 -0
- package/dist/auth/providers/no_auth_provider.js +76 -0
- package/dist/auth/providers/no_auth_provider.js.map +1 -0
- package/dist/auth/types.d.ts +5 -3
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/components/assets_manager.d.ts +1 -1
- package/dist/components/assets_manager.d.ts.map +1 -1
- package/dist/components/assets_manager.js +54 -48
- package/dist/components/assets_manager.js.map +1 -1
- package/dist/components/collector.d.ts.map +1 -1
- package/dist/components/collector.js +30 -18
- package/dist/components/collector.js.map +1 -1
- package/dist/components/custom_table_manager.d.ts.map +1 -1
- package/dist/components/custom_table_manager.js +36 -65
- package/dist/components/custom_table_manager.js.map +1 -1
- package/dist/components/global_assets_handler.d.ts +4 -2
- package/dist/components/global_assets_handler.d.ts.map +1 -1
- package/dist/components/global_assets_handler.js.map +1 -1
- package/dist/components/harvester.d.ts.map +1 -1
- package/dist/components/harvester.js +46 -33
- package/dist/components/harvester.js.map +1 -1
- package/dist/components/interfaces.d.ts +3 -2
- package/dist/components/interfaces.d.ts.map +1 -1
- package/dist/components/map_manager.d.ts.map +1 -1
- package/dist/components/map_manager.js.map +1 -1
- package/dist/components/tileset_manager.d.ts +2 -1
- package/dist/components/tileset_manager.d.ts.map +1 -1
- package/dist/components/tileset_manager.js +20 -15
- package/dist/components/tileset_manager.js.map +1 -1
- package/dist/database/adapters/knex_database_adapter.d.ts +6 -1
- package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -1
- package/dist/database/adapters/knex_database_adapter.js +118 -36
- package/dist/database/adapters/knex_database_adapter.js.map +1 -1
- package/dist/database/database_adapter.d.ts +13 -1
- package/dist/database/database_adapter.d.ts.map +1 -1
- package/dist/database/database_adapter.js.map +1 -1
- package/dist/engine/component_types.d.ts +95 -0
- package/dist/engine/component_types.d.ts.map +1 -0
- package/dist/engine/component_types.js +93 -0
- package/dist/engine/component_types.js.map +1 -0
- package/dist/engine/digital_twin_engine.d.ts +121 -6
- package/dist/engine/digital_twin_engine.d.ts.map +1 -1
- package/dist/engine/digital_twin_engine.js +402 -74
- package/dist/engine/digital_twin_engine.js.map +1 -1
- package/dist/engine/endpoints.d.ts.map +1 -1
- package/dist/engine/endpoints.js +35 -3
- package/dist/engine/endpoints.js.map +1 -1
- package/dist/engine/error_handler.d.ts +20 -0
- package/dist/engine/error_handler.d.ts.map +1 -0
- package/dist/engine/error_handler.js +69 -0
- package/dist/engine/error_handler.js.map +1 -0
- package/dist/engine/events.d.ts +1 -1
- package/dist/engine/events.d.ts.map +1 -1
- package/dist/engine/events.js.map +1 -1
- package/dist/engine/health.d.ts +112 -0
- package/dist/engine/health.d.ts.map +1 -0
- package/dist/engine/health.js +190 -0
- package/dist/engine/health.js.map +1 -0
- package/dist/engine/initializer.d.ts.map +1 -1
- package/dist/engine/initializer.js +6 -4
- package/dist/engine/initializer.js.map +1 -1
- package/dist/engine/scheduler.d.ts.map +1 -1
- package/dist/engine/scheduler.js +17 -9
- package/dist/engine/scheduler.js.map +1 -1
- package/dist/engine/upload_processor.d.ts.map +1 -1
- package/dist/engine/upload_processor.js +24 -12
- package/dist/engine/upload_processor.js.map +1 -1
- package/dist/errors/index.d.ts +94 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +149 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/loader/component_loader.d.ts +128 -0
- package/dist/loader/component_loader.d.ts.map +1 -0
- package/dist/loader/component_loader.js +330 -0
- package/dist/loader/component_loader.js.map +1 -0
- package/dist/loader/index.d.ts +19 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +19 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/storage/adapters/local_storage_service.d.ts +6 -0
- package/dist/storage/adapters/local_storage_service.d.ts.map +1 -1
- package/dist/storage/adapters/local_storage_service.js +26 -4
- package/dist/storage/adapters/local_storage_service.js.map +1 -1
- package/dist/storage/adapters/ovh_storage_service.d.ts.map +1 -1
- package/dist/storage/adapters/ovh_storage_service.js +5 -6
- package/dist/storage/adapters/ovh_storage_service.js.map +1 -1
- package/dist/storage/storage_factory.d.ts.map +1 -1
- package/dist/storage/storage_factory.js +4 -1
- package/dist/storage/storage_factory.js.map +1 -1
- package/dist/storage/storage_service.d.ts.map +1 -1
- package/dist/storage/storage_service.js +6 -2
- package/dist/storage/storage_service.js.map +1 -1
- package/dist/types/http.d.ts +156 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/http.js +8 -0
- package/dist/types/http.js.map +1 -0
- package/dist/utils/graceful_shutdown.d.ts +44 -0
- package/dist/utils/graceful_shutdown.d.ts.map +1 -0
- package/dist/utils/graceful_shutdown.js +79 -0
- package/dist/utils/graceful_shutdown.js.map +1 -0
- package/dist/utils/http_responses.d.ts +20 -0
- package/dist/utils/http_responses.d.ts.map +1 -1
- package/dist/utils/http_responses.js +28 -2
- package/dist/utils/http_responses.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -8
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +8 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/safe_async.d.ts +50 -0
- package/dist/utils/safe_async.d.ts.map +1 -0
- package/dist/utils/safe_async.js +90 -0
- package/dist/utils/safe_async.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +7 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +273 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +82 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/validation/validate.d.ts +49 -0
- package/dist/validation/validate.d.ts.map +1 -0
- package/dist/validation/validate.js +110 -0
- package/dist/validation/validate.js.map +1 -0
- package/package.json +14 -8
|
@@ -4,6 +4,9 @@ import { ApisixAuthParser } from '../auth/apisix_parser.js';
|
|
|
4
4
|
import { AuthConfig } from '../auth/auth_config.js';
|
|
5
5
|
import fs from 'fs/promises';
|
|
6
6
|
import { successResponse, errorResponse, badRequestResponse, unauthorizedResponse, notFoundResponse, forbiddenResponse } from '../utils/http_responses.js';
|
|
7
|
+
import { safeAsync, safeCleanup } from '../utils/safe_async.js';
|
|
8
|
+
import { Logger } from '../utils/logger.js';
|
|
9
|
+
const logger = new Logger('TilesetManager');
|
|
7
10
|
/** Threshold for async upload (50MB) */
|
|
8
11
|
const ASYNC_UPLOAD_THRESHOLD = 50 * 1024 * 1024;
|
|
9
12
|
/**
|
|
@@ -89,17 +92,17 @@ export class TilesetManager extends AssetsManager {
|
|
|
89
92
|
}
|
|
90
93
|
if (!description) {
|
|
91
94
|
if (filePath)
|
|
92
|
-
await fs.unlink(filePath)
|
|
95
|
+
await safeAsync(() => fs.unlink(filePath), 'cleanup temp file on validation error', logger);
|
|
93
96
|
return badRequestResponse('Missing required field: description');
|
|
94
97
|
}
|
|
95
98
|
if (!filename) {
|
|
96
99
|
if (filePath)
|
|
97
|
-
await fs.unlink(filePath)
|
|
100
|
+
await safeAsync(() => fs.unlink(filePath), 'cleanup temp file on validation error', logger);
|
|
98
101
|
return badRequestResponse('Filename could not be determined from uploaded file');
|
|
99
102
|
}
|
|
100
103
|
if (!filename.toLowerCase().endsWith('.zip')) {
|
|
101
104
|
if (filePath)
|
|
102
|
-
await fs.unlink(filePath)
|
|
105
|
+
await safeAsync(() => fs.unlink(filePath), 'cleanup temp file on validation error', logger);
|
|
103
106
|
return badRequestResponse('Invalid file extension. Expected: .zip');
|
|
104
107
|
}
|
|
105
108
|
const config = this.getConfiguration();
|
|
@@ -112,7 +115,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
112
115
|
}
|
|
113
116
|
catch (error) {
|
|
114
117
|
if (req.file?.path)
|
|
115
|
-
await fs.unlink(req.file.path)
|
|
118
|
+
await safeAsync(() => fs.unlink(req.file.path), 'cleanup temp file on error', logger);
|
|
116
119
|
return errorResponse(error);
|
|
117
120
|
}
|
|
118
121
|
}
|
|
@@ -190,9 +193,13 @@ export class TilesetManager extends AssetsManager {
|
|
|
190
193
|
};
|
|
191
194
|
}
|
|
192
195
|
catch (error) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
+
await safeCleanup([
|
|
197
|
+
{
|
|
198
|
+
operation: () => recordId !== null ? this.db.delete(String(recordId), config.name) : Promise.resolve(),
|
|
199
|
+
context: 'delete record on async upload error'
|
|
200
|
+
},
|
|
201
|
+
{ operation: () => fs.unlink(filePath), context: 'cleanup temp file on async upload error' }
|
|
202
|
+
], logger);
|
|
196
203
|
throw error;
|
|
197
204
|
}
|
|
198
205
|
}
|
|
@@ -217,7 +224,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
217
224
|
const extractResult = await extractAndStoreArchive(zipBuffer, this.storage, basePath);
|
|
218
225
|
if (!extractResult.root_file) {
|
|
219
226
|
// Clean up uploaded files
|
|
220
|
-
await this.storage.deleteByPrefix(basePath)
|
|
227
|
+
await safeAsync(() => this.storage.deleteByPrefix(basePath), 'cleanup storage on invalid tileset', logger);
|
|
221
228
|
return badRequestResponse('Invalid tileset: no tileset.json found in the ZIP archive');
|
|
222
229
|
}
|
|
223
230
|
// Build the public URL for tileset.json
|
|
@@ -239,7 +246,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
239
246
|
const savedRecord = await this.db.save(metadata);
|
|
240
247
|
// Clean up temp file
|
|
241
248
|
if (filePath)
|
|
242
|
-
await fs.unlink(filePath)
|
|
249
|
+
await safeAsync(() => fs.unlink(filePath), 'cleanup temp file after sync upload', logger);
|
|
243
250
|
return successResponse({
|
|
244
251
|
message: 'Tileset uploaded successfully',
|
|
245
252
|
id: savedRecord.id,
|
|
@@ -249,7 +256,7 @@ export class TilesetManager extends AssetsManager {
|
|
|
249
256
|
}
|
|
250
257
|
catch (error) {
|
|
251
258
|
if (filePath)
|
|
252
|
-
await fs.unlink(filePath)
|
|
259
|
+
await safeAsync(() => fs.unlink(filePath), 'cleanup temp file on sync upload error', logger);
|
|
253
260
|
throw error;
|
|
254
261
|
}
|
|
255
262
|
}
|
|
@@ -364,17 +371,15 @@ export class TilesetManager extends AssetsManager {
|
|
|
364
371
|
const legacyFileIndex = asset.file_index;
|
|
365
372
|
if (legacyFileIndex?.files && legacyFileIndex.files.length > 0) {
|
|
366
373
|
// Legacy format: delete individual files from file_index
|
|
367
|
-
|
|
374
|
+
logger.info(`Deleting ${legacyFileIndex.files.length} files (legacy format)`);
|
|
368
375
|
for (const file of legacyFileIndex.files) {
|
|
369
|
-
await this.storage.delete(file.path)
|
|
370
|
-
// Ignore individual file deletion errors
|
|
371
|
-
});
|
|
376
|
+
await safeAsync(() => this.storage.delete(file.path), `delete legacy file ${file.path}`, logger);
|
|
372
377
|
}
|
|
373
378
|
}
|
|
374
379
|
else if (asset.url) {
|
|
375
380
|
// New format: url contains basePath, use deleteByPrefix
|
|
376
381
|
const deletedCount = await this.storage.deleteByPrefix(asset.url);
|
|
377
|
-
|
|
382
|
+
logger.info(`Deleted ${deletedCount} files from ${asset.url}`);
|
|
378
383
|
}
|
|
379
384
|
// Delete database record
|
|
380
385
|
await this.deleteAssetById(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset_manager.js","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tileset_manager.js","sourceRoot":"","sources":["../../src/components/tileset_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export declare class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
49
49
|
*/
|
|
50
50
|
migrateTableSchema(name: string): Promise<string[]>;
|
|
51
51
|
getFirstByName(name: string): Promise<DataRecord | undefined>;
|
|
52
|
-
getByDateRange(name: string, startDate: Date, endDate?: Date, limit?: number): Promise<DataRecord[]>;
|
|
52
|
+
getByDateRange(name: string, startDate: Date, endDate?: Date, limit?: number, order?: 'asc' | 'desc'): Promise<DataRecord[]>;
|
|
53
53
|
getAfterDate(name: string, afterDate: Date, limit?: number): Promise<DataRecord[]>;
|
|
54
54
|
getLatestBefore(name: string, beforeDate: Date): Promise<DataRecord | undefined>;
|
|
55
55
|
getLatestRecordsBefore(name: string, beforeDate: Date, limit: number): Promise<DataRecord[]>;
|
|
@@ -68,6 +68,11 @@ export declare class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
68
68
|
records: DataRecord[];
|
|
69
69
|
total: number;
|
|
70
70
|
}>;
|
|
71
|
+
updateAssetMetadata(tableName: string, id: number, data: Partial<{
|
|
72
|
+
description: string;
|
|
73
|
+
source: string;
|
|
74
|
+
is_public: boolean;
|
|
75
|
+
}>): Promise<DataRecord>;
|
|
71
76
|
findByConditions(tableName: string, conditions: Record<string, any>): Promise<DataRecord[]>;
|
|
72
77
|
updateById(tableName: string, id: number, data: Record<string, any>): Promise<void>;
|
|
73
78
|
close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knex_database_adapter.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAGtE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;;gBAIxC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc;IAMxD;;OAEG;IACH,MAAM,CAAC,aAAa,CAChB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,MAAqB,GAClC,mBAAmB;IAyBtB;;OAEG;IACH,MAAM,CAAC,SAAS,CACZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,MAAqB,GAClC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"knex_database_adapter.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/knex_database_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,7 +82,24 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
82
82
|
return new KnexDatabaseAdapter(knexConfig, storage);
|
|
83
83
|
}
|
|
84
84
|
// ========== Basic methods ==========
|
|
85
|
+
/**
|
|
86
|
+
* Validates that a table name is safe for SQL operations.
|
|
87
|
+
* Prevents SQL injection via table names.
|
|
88
|
+
* @param name - The table name to validate
|
|
89
|
+
* @throws Error if the table name is invalid
|
|
90
|
+
*/
|
|
91
|
+
#validateTableName(name) {
|
|
92
|
+
// Must start with letter or underscore, followed by alphanumeric or underscores
|
|
93
|
+
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
|
|
94
|
+
throw new Error(`Invalid table name: "${name}". Must start with a letter or underscore and contain only alphanumeric characters and underscores.`);
|
|
95
|
+
}
|
|
96
|
+
// PostgreSQL max identifier length is 63, SQLite has no practical limit
|
|
97
|
+
if (name.length > 63) {
|
|
98
|
+
throw new Error(`Table name too long: "${name}". Maximum 63 characters allowed.`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
85
101
|
async save(meta) {
|
|
102
|
+
this.#validateTableName(meta.name);
|
|
86
103
|
const insertData = {
|
|
87
104
|
id: meta.id,
|
|
88
105
|
name: meta.name,
|
|
@@ -119,20 +136,25 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
119
136
|
return mapToDataRecord({ ...meta, id: newId }, this.#storage);
|
|
120
137
|
}
|
|
121
138
|
async delete(id, name) {
|
|
139
|
+
this.#validateTableName(name);
|
|
122
140
|
await this.#knex(name).where({ id }).delete();
|
|
123
141
|
}
|
|
124
142
|
async getById(id, name) {
|
|
143
|
+
this.#validateTableName(name);
|
|
125
144
|
const row = await this.#knex(name).where({ id }).first();
|
|
126
145
|
return row ? mapToDataRecord(row, this.#storage) : undefined;
|
|
127
146
|
}
|
|
128
147
|
async getLatestByName(name) {
|
|
148
|
+
this.#validateTableName(name);
|
|
129
149
|
const row = await this.#knex(name).select('*').orderBy('date', 'desc').limit(1).first();
|
|
130
150
|
return row ? mapToDataRecord(row, this.#storage) : undefined;
|
|
131
151
|
}
|
|
132
152
|
async doesTableExists(name) {
|
|
153
|
+
this.#validateTableName(name);
|
|
133
154
|
return this.#knex.schema.hasTable(name);
|
|
134
155
|
}
|
|
135
156
|
async createTable(name) {
|
|
157
|
+
this.#validateTableName(name);
|
|
136
158
|
const tableExists = await this.#knex.schema.hasTable(name);
|
|
137
159
|
if (!tableExists) {
|
|
138
160
|
await this.#knex.schema.createTable(name, table => {
|
|
@@ -173,6 +195,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
173
195
|
}
|
|
174
196
|
}
|
|
175
197
|
async createTableWithColumns(name, columns) {
|
|
198
|
+
this.#validateTableName(name);
|
|
176
199
|
const tableExists = await this.#knex.schema.hasTable(name);
|
|
177
200
|
if (!tableExists) {
|
|
178
201
|
await this.#knex.schema.createTable(name, table => {
|
|
@@ -267,6 +290,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
267
290
|
* @returns {Promise<string[]>} Array of migration messages describing what was done
|
|
268
291
|
*/
|
|
269
292
|
async migrateTableSchema(name) {
|
|
293
|
+
this.#validateTableName(name);
|
|
270
294
|
const tableExists = await this.#knex.schema.hasTable(name);
|
|
271
295
|
if (!tableExists) {
|
|
272
296
|
return []; // Table doesn't exist, nothing to migrate
|
|
@@ -395,15 +419,17 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
395
419
|
}
|
|
396
420
|
// ========== Extended methods ==========
|
|
397
421
|
async getFirstByName(name) {
|
|
422
|
+
this.#validateTableName(name);
|
|
398
423
|
const row = await this.#knex(name).orderBy('date', 'asc').first();
|
|
399
424
|
return row ? mapToDataRecord(row, this.#storage) : undefined;
|
|
400
425
|
}
|
|
401
|
-
async getByDateRange(name, startDate, endDate, limit) {
|
|
426
|
+
async getByDateRange(name, startDate, endDate, limit, order = 'asc') {
|
|
427
|
+
this.#validateTableName(name);
|
|
402
428
|
let query = this.#knex(name).select('*').where('date', '>=', startDate.toISOString());
|
|
403
429
|
if (endDate) {
|
|
404
430
|
query = query.where('date', '<', endDate.toISOString());
|
|
405
431
|
}
|
|
406
|
-
query = query.orderBy('date',
|
|
432
|
+
query = query.orderBy('date', order);
|
|
407
433
|
if (limit) {
|
|
408
434
|
query = query.limit(limit);
|
|
409
435
|
}
|
|
@@ -411,6 +437,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
411
437
|
return rows.map(row => mapToDataRecord(row, this.#storage));
|
|
412
438
|
}
|
|
413
439
|
async getAfterDate(name, afterDate, limit) {
|
|
440
|
+
this.#validateTableName(name);
|
|
414
441
|
let query = this.#knex(name).where('date', '>', afterDate.toISOString()).orderBy('date', 'asc');
|
|
415
442
|
if (limit) {
|
|
416
443
|
query = query.limit(limit);
|
|
@@ -419,10 +446,12 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
419
446
|
return rows.map(row => mapToDataRecord(row, this.#storage));
|
|
420
447
|
}
|
|
421
448
|
async getLatestBefore(name, beforeDate) {
|
|
449
|
+
this.#validateTableName(name);
|
|
422
450
|
const row = await this.#knex(name).where('date', '<', beforeDate.toISOString()).orderBy('date', 'desc').first();
|
|
423
451
|
return row ? mapToDataRecord(row, this.#storage) : undefined;
|
|
424
452
|
}
|
|
425
453
|
async getLatestRecordsBefore(name, beforeDate, limit) {
|
|
454
|
+
this.#validateTableName(name);
|
|
426
455
|
const rows = await this.#knex(name)
|
|
427
456
|
.where('date', '<', beforeDate.toISOString())
|
|
428
457
|
.orderBy('date', 'desc')
|
|
@@ -430,6 +459,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
430
459
|
return rows.map(row => mapToDataRecord(row, this.#storage));
|
|
431
460
|
}
|
|
432
461
|
async hasRecordsAfterDate(name, afterDate) {
|
|
462
|
+
this.#validateTableName(name);
|
|
433
463
|
const result = await this.#knex(name)
|
|
434
464
|
.where('date', '>', afterDate.toISOString())
|
|
435
465
|
.select(this.#knex.raw('1'))
|
|
@@ -438,6 +468,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
438
468
|
return !!result;
|
|
439
469
|
}
|
|
440
470
|
async countByDateRange(name, startDate, endDate) {
|
|
471
|
+
this.#validateTableName(name);
|
|
441
472
|
let query = this.#knex(name).where('date', '>=', startDate.toISOString());
|
|
442
473
|
if (endDate) {
|
|
443
474
|
query = query.where('date', '<', endDate.toISOString());
|
|
@@ -449,6 +480,10 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
449
480
|
async saveBatch(metadataList) {
|
|
450
481
|
if (metadataList.length === 0)
|
|
451
482
|
return [];
|
|
483
|
+
// Validate all table names upfront
|
|
484
|
+
for (const meta of metadataList) {
|
|
485
|
+
this.#validateTableName(meta.name);
|
|
486
|
+
}
|
|
452
487
|
// Group by table name for efficient batch inserts
|
|
453
488
|
const groupedByTable = new Map();
|
|
454
489
|
for (const meta of metadataList) {
|
|
@@ -460,42 +495,48 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
460
495
|
groupedByTable.set(meta.name, [meta]);
|
|
461
496
|
}
|
|
462
497
|
}
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
const
|
|
467
|
-
const
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
498
|
+
// Use transaction for atomicity - all or nothing
|
|
499
|
+
return this.#knex.transaction(async (trx) => {
|
|
500
|
+
const results = [];
|
|
501
|
+
for (const [tableName, metas] of groupedByTable) {
|
|
502
|
+
const insertData = metas.map(meta => {
|
|
503
|
+
const data = {
|
|
504
|
+
name: meta.name,
|
|
505
|
+
type: meta.type,
|
|
506
|
+
url: meta.url,
|
|
507
|
+
date: meta.date.toISOString()
|
|
508
|
+
};
|
|
509
|
+
// Only include ID if it's explicitly set (for updates)
|
|
510
|
+
if (meta.id !== undefined) {
|
|
511
|
+
data.id = meta.id;
|
|
512
|
+
}
|
|
513
|
+
// Add asset-specific fields if present
|
|
514
|
+
if ('description' in meta)
|
|
515
|
+
data.description = meta.description;
|
|
516
|
+
if ('source' in meta)
|
|
517
|
+
data.source = meta.source;
|
|
518
|
+
if ('owner_id' in meta)
|
|
519
|
+
data.owner_id = meta.owner_id;
|
|
520
|
+
if ('filename' in meta)
|
|
521
|
+
data.filename = meta.filename;
|
|
522
|
+
return data;
|
|
523
|
+
});
|
|
524
|
+
await trx(tableName).insert(insertData);
|
|
525
|
+
// Convert to DataRecords
|
|
526
|
+
for (const meta of metas) {
|
|
527
|
+
results.push(mapToDataRecord(meta, this.#storage));
|
|
476
528
|
}
|
|
477
|
-
// Add asset-specific fields if present
|
|
478
|
-
if ('description' in meta)
|
|
479
|
-
data.description = meta.description;
|
|
480
|
-
if ('source' in meta)
|
|
481
|
-
data.source = meta.source;
|
|
482
|
-
if ('owner_id' in meta)
|
|
483
|
-
data.owner_id = meta.owner_id;
|
|
484
|
-
if ('filename' in meta)
|
|
485
|
-
data.filename = meta.filename;
|
|
486
|
-
return data;
|
|
487
|
-
});
|
|
488
|
-
await this.#knex(tableName).insert(insertData);
|
|
489
|
-
// Convert to DataRecords
|
|
490
|
-
for (const meta of metas) {
|
|
491
|
-
results.push(mapToDataRecord(meta, this.#storage));
|
|
492
529
|
}
|
|
493
|
-
|
|
494
|
-
|
|
530
|
+
return results;
|
|
531
|
+
});
|
|
495
532
|
}
|
|
496
533
|
async deleteBatch(deleteRequests) {
|
|
497
534
|
if (deleteRequests.length === 0)
|
|
498
535
|
return;
|
|
536
|
+
// Validate all table names upfront
|
|
537
|
+
for (const req of deleteRequests) {
|
|
538
|
+
this.#validateTableName(req.name);
|
|
539
|
+
}
|
|
499
540
|
// Group by table name for efficient batch deletes
|
|
500
541
|
const groupedByTable = new Map();
|
|
501
542
|
for (const req of deleteRequests) {
|
|
@@ -507,14 +548,20 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
507
548
|
groupedByTable.set(req.name, [req.id]);
|
|
508
549
|
}
|
|
509
550
|
}
|
|
510
|
-
//
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
551
|
+
// Use transaction for atomicity - all or nothing
|
|
552
|
+
await this.#knex.transaction(async (trx) => {
|
|
553
|
+
for (const [tableName, ids] of groupedByTable) {
|
|
554
|
+
await trx(tableName).whereIn('id', ids).delete();
|
|
555
|
+
}
|
|
556
|
+
});
|
|
514
557
|
}
|
|
515
558
|
async getByIdsBatch(requests) {
|
|
516
559
|
if (requests.length === 0)
|
|
517
560
|
return [];
|
|
561
|
+
// Validate all table names upfront
|
|
562
|
+
for (const req of requests) {
|
|
563
|
+
this.#validateTableName(req.name);
|
|
564
|
+
}
|
|
518
565
|
const results = [];
|
|
519
566
|
// Group by table name for efficient queries
|
|
520
567
|
const groupedByTable = new Map();
|
|
@@ -538,6 +585,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
538
585
|
}
|
|
539
586
|
// ========== Optimized query for assets manager ==========
|
|
540
587
|
async getAllAssetsPaginated(name, offset = 0, limit = 100) {
|
|
588
|
+
this.#validateTableName(name);
|
|
541
589
|
// Get total count efficiently
|
|
542
590
|
const countResult = await this.#knex(name).count('* as count').first();
|
|
543
591
|
const total = Number(countResult?.count) || 0;
|
|
@@ -546,8 +594,38 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
546
594
|
const records = rows.map(row => mapToDataRecord(row, this.#storage));
|
|
547
595
|
return { records, total };
|
|
548
596
|
}
|
|
597
|
+
async updateAssetMetadata(tableName, id, data) {
|
|
598
|
+
this.#validateTableName(tableName);
|
|
599
|
+
const updateData = {};
|
|
600
|
+
// Only update fields that are explicitly provided
|
|
601
|
+
if (data.description !== undefined)
|
|
602
|
+
updateData.description = data.description;
|
|
603
|
+
if (data.source !== undefined)
|
|
604
|
+
updateData.source = data.source;
|
|
605
|
+
if (data.is_public !== undefined)
|
|
606
|
+
updateData.is_public = data.is_public;
|
|
607
|
+
if (Object.keys(updateData).length === 0) {
|
|
608
|
+
// Nothing to update, just return the existing record
|
|
609
|
+
const existing = await this.getById(String(id), tableName);
|
|
610
|
+
if (!existing) {
|
|
611
|
+
throw new Error(`Record with ID ${id} not found in table ${tableName}`);
|
|
612
|
+
}
|
|
613
|
+
return existing;
|
|
614
|
+
}
|
|
615
|
+
const rowsAffected = await this.#knex(tableName).where('id', id).update(updateData);
|
|
616
|
+
if (rowsAffected === 0) {
|
|
617
|
+
throw new Error(`Record with ID ${id} not found in table ${tableName}`);
|
|
618
|
+
}
|
|
619
|
+
// Return the updated record
|
|
620
|
+
const updated = await this.getById(String(id), tableName);
|
|
621
|
+
if (!updated) {
|
|
622
|
+
throw new Error(`Failed to retrieve updated record ${id} from table ${tableName}`);
|
|
623
|
+
}
|
|
624
|
+
return updated;
|
|
625
|
+
}
|
|
549
626
|
// ========== Methods for CustomTableManager ==========
|
|
550
627
|
async findByConditions(tableName, conditions) {
|
|
628
|
+
this.#validateTableName(tableName);
|
|
551
629
|
let query = this.#knex(tableName).select('*');
|
|
552
630
|
// Apply each condition
|
|
553
631
|
for (const [column, value] of Object.entries(conditions)) {
|
|
@@ -569,6 +647,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
569
647
|
return rows.map(row => mapToDataRecord(row, this.#storage));
|
|
570
648
|
}
|
|
571
649
|
async updateById(tableName, id, data) {
|
|
650
|
+
this.#validateTableName(tableName);
|
|
572
651
|
// Create a clean update object with updated_at timestamp
|
|
573
652
|
const updateData = {
|
|
574
653
|
...data,
|
|
@@ -598,6 +677,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
598
677
|
* This bypasses mapToDataRecord() which assumes standard table structure
|
|
599
678
|
*/
|
|
600
679
|
async findCustomTableRecords(tableName, conditions = {}) {
|
|
680
|
+
this.#validateTableName(tableName);
|
|
601
681
|
let query = this.#knex(tableName).select('*');
|
|
602
682
|
// Apply each condition
|
|
603
683
|
for (const [column, value] of Object.entries(conditions)) {
|
|
@@ -620,6 +700,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
620
700
|
* Get a single custom table record by ID (returns raw database row, not DataRecord)
|
|
621
701
|
*/
|
|
622
702
|
async getCustomTableRecordById(tableName, id) {
|
|
703
|
+
this.#validateTableName(tableName);
|
|
623
704
|
const row = await this.#knex(tableName).where({ id }).first();
|
|
624
705
|
return row || null;
|
|
625
706
|
}
|
|
@@ -627,6 +708,7 @@ export class KnexDatabaseAdapter extends DatabaseAdapter {
|
|
|
627
708
|
* Insert a record into a custom table (returns the new record ID)
|
|
628
709
|
*/
|
|
629
710
|
async insertCustomTableRecord(tableName, data) {
|
|
711
|
+
this.#validateTableName(tableName);
|
|
630
712
|
const now = new Date();
|
|
631
713
|
const insertData = {
|
|
632
714
|
...data,
|