update
This commit is contained in:
@@ -373,19 +373,31 @@ export class OneboxDatabase {
|
||||
this.query('DELETE FROM services WHERE id = ?', [id]);
|
||||
}
|
||||
|
||||
private rowToService(row: unknown[]): IService {
|
||||
private rowToService(row: any): IService {
|
||||
// Handle env_vars JSON parsing safely
|
||||
let envVars = {};
|
||||
const envVarsRaw = row.env_vars || row[4];
|
||||
if (envVarsRaw && envVarsRaw !== 'undefined' && envVarsRaw !== 'null') {
|
||||
try {
|
||||
envVars = JSON.parse(String(envVarsRaw));
|
||||
} catch (e) {
|
||||
logger.warn(`Failed to parse env_vars for service: ${e.message}`);
|
||||
envVars = {};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
id: Number(row[0]),
|
||||
name: String(row[1]),
|
||||
image: String(row[2]),
|
||||
registry: row[3] ? String(row[3]) : undefined,
|
||||
envVars: JSON.parse(String(row[4])),
|
||||
port: Number(row[5]),
|
||||
domain: row[6] ? String(row[6]) : undefined,
|
||||
containerID: row[7] ? String(row[7]) : undefined,
|
||||
status: String(row[8]) as IService['status'],
|
||||
createdAt: Number(row[9]),
|
||||
updatedAt: Number(row[10]),
|
||||
id: Number(row.id || row[0]),
|
||||
name: String(row.name || row[1]),
|
||||
image: String(row.image || row[2]),
|
||||
registry: (row.registry || row[3]) ? String(row.registry || row[3]) : undefined,
|
||||
envVars,
|
||||
port: Number(row.port || row[5]),
|
||||
domain: (row.domain || row[6]) ? String(row.domain || row[6]) : undefined,
|
||||
containerID: (row.container_id || row[7]) ? String(row.container_id || row[7]) : undefined,
|
||||
status: String(row.status || row[8]) as IService['status'],
|
||||
createdAt: Number(row.created_at || row[9]),
|
||||
updatedAt: Number(row.updated_at || row[10]),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -422,13 +434,13 @@ export class OneboxDatabase {
|
||||
this.query('DELETE FROM registries WHERE url = ?', [url]);
|
||||
}
|
||||
|
||||
private rowToRegistry(row: unknown[]): IRegistry {
|
||||
private rowToRegistry(row: any): IRegistry {
|
||||
return {
|
||||
id: Number(row[0]),
|
||||
url: String(row[1]),
|
||||
username: String(row[2]),
|
||||
passwordEncrypted: String(row[3]),
|
||||
createdAt: Number(row[4]),
|
||||
id: Number(row.id || row[0]),
|
||||
url: String(row.url || row[1]),
|
||||
username: String(row.username || row[2]),
|
||||
passwordEncrypted: String(row.password_encrypted || row[3]),
|
||||
createdAt: Number(row.created_at || row[4]),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -552,16 +564,16 @@ export class OneboxDatabase {
|
||||
return rows.map((row) => this.rowToMetric(row));
|
||||
}
|
||||
|
||||
private rowToMetric(row: unknown[]): IMetric {
|
||||
private rowToMetric(row: any): IMetric {
|
||||
return {
|
||||
id: Number(row[0]),
|
||||
serviceId: Number(row[1]),
|
||||
timestamp: Number(row[2]),
|
||||
cpuPercent: Number(row[3]),
|
||||
memoryUsed: Number(row[4]),
|
||||
memoryLimit: Number(row[5]),
|
||||
networkRxBytes: Number(row[6]),
|
||||
networkTxBytes: Number(row[7]),
|
||||
id: Number(row.id || row[0]),
|
||||
serviceId: Number(row.service_id || row[1]),
|
||||
timestamp: Number(row.timestamp || row[2]),
|
||||
cpuPercent: Number(row.cpu_percent || row[3]),
|
||||
memoryUsed: Number(row.memory_used || row[4]),
|
||||
memoryLimit: Number(row.memory_limit || row[5]),
|
||||
networkRxBytes: Number(row.network_rx_bytes || row[6]),
|
||||
networkTxBytes: Number(row.network_tx_bytes || row[7]),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -586,14 +598,14 @@ export class OneboxDatabase {
|
||||
return rows.map((row) => this.rowToLog(row));
|
||||
}
|
||||
|
||||
private rowToLog(row: unknown[]): ILogEntry {
|
||||
private rowToLog(row: any): ILogEntry {
|
||||
return {
|
||||
id: Number(row[0]),
|
||||
serviceId: Number(row[1]),
|
||||
timestamp: Number(row[2]),
|
||||
message: String(row[3]),
|
||||
level: String(row[4]) as ILogEntry['level'],
|
||||
source: String(row[5]) as ILogEntry['source'],
|
||||
id: Number(row.id || row[0]),
|
||||
serviceId: Number(row.service_id || row[1]),
|
||||
timestamp: Number(row.timestamp || row[2]),
|
||||
message: String(row.message || row[3]),
|
||||
level: String(row.level || row[4]) as ILogEntry['level'],
|
||||
source: String(row.source || row[5]) as ILogEntry['source'],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -670,17 +682,17 @@ export class OneboxDatabase {
|
||||
this.query('DELETE FROM ssl_certificates WHERE domain = ?', [domain]);
|
||||
}
|
||||
|
||||
private rowToSSLCert(row: unknown[]): ISslCertificate {
|
||||
private rowToSSLCert(row: any): ISslCertificate {
|
||||
return {
|
||||
id: Number(row[0]),
|
||||
domain: String(row[1]),
|
||||
certPath: String(row[2]),
|
||||
keyPath: String(row[3]),
|
||||
fullChainPath: String(row[4]),
|
||||
expiryDate: Number(row[5]),
|
||||
issuer: String(row[6]),
|
||||
createdAt: Number(row[7]),
|
||||
updatedAt: Number(row[8]),
|
||||
id: Number(row.id || row[0]),
|
||||
domain: String(row.domain || row[1]),
|
||||
certPath: String(row.cert_path || row[2]),
|
||||
keyPath: String(row.key_path || row[3]),
|
||||
fullChainPath: String(row.full_chain_path || row[4]),
|
||||
expiryDate: Number(row.expiry_date || row[5]),
|
||||
issuer: String(row.issuer || row[6]),
|
||||
createdAt: Number(row.created_at || row[7]),
|
||||
updatedAt: Number(row.updated_at || row[8]),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user