From 444f2ded4505c857ca45b0cdcd6642323811eec7 Mon Sep 17 00:00:00 2001 From: Moda20 Date: Mon, 25 May 2026 20:57:07 +0100 Subject: [PATCH 1/2] Add a sysLog log error loading individual jobs Update config shared with jobs to have no sensitive data (explicitly hidden from jobs, encrypted values) small improvement for config categorization for the frontend --- src/config/config.service.ts | 5 +++++ src/config/config.ts | 1 + src/initialization/jobsManager.ts | 7 +++++++ src/jobConsumer/jobConsumer.ts | 11 ++++++++++- src/types/models/config.ts | 1 + src/utils/convictUtils.ts | 11 ++++++++++- 6 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/config/config.service.ts b/src/config/config.service.ts index 7e321c2..0862be5 100644 --- a/src/config/config.service.ts +++ b/src/config/config.service.ts @@ -68,9 +68,11 @@ const verifyMasterKey = () => { export const getConvictSchemaProperties = ({ encryptedValues = true, onlyMirroredValues = true, + withJobHiddenProperties = true, }: { encryptedValues?: boolean; onlyMirroredValues?: boolean; + withJobHiddenProperties?: boolean; } = {}) => { const propertiesValues: FlattenedProperties = flattenedProperties( config.getProperties(), @@ -105,6 +107,9 @@ export const getConvictSchemaProperties = ({ if (onlyMirroredValues && !propertiesValues[pvk].db_mirror) { delete propertiesValues[pvk]; } + if (!withJobHiddenProperties && propertiesValues[pvk].job_hidden) { + delete propertiesValues[pvk]; + } }); return propertiesValues; diff --git a/src/config/config.ts b/src/config/config.ts index 19a8660..7a4f5e5 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -320,6 +320,7 @@ const config = convict({ env: "MASTER_ENCRYPTION_KEY", sensitive: true, db_mirror: false, + job_hidden: true, }, }, version: { diff --git a/src/initialization/jobsManager.ts b/src/initialization/jobsManager.ts index da7ba25..45121dd 100644 --- a/src/initialization/jobsManager.ts +++ b/src/initialization/jobsManager.ts @@ -58,6 +58,13 @@ export const fullStartAJob = async (job: JobDTO) => { } else { logger.error("Error when starting Job"); logger.error(d); + const sysLog = eventLog(LogEventNames.SysLogEvent); + sysLog.error( + `Error when starting job ${job.getName()} ${JSON.stringify(d, null, 4)}`, + { + eventName: "JOB_START_ERROR", + }, + ); throw d; } }; diff --git a/src/jobConsumer/jobConsumer.ts b/src/jobConsumer/jobConsumer.ts index cbbe39e..f16db61 100644 --- a/src/jobConsumer/jobConsumer.ts +++ b/src/jobConsumer/jobConsumer.ts @@ -1,4 +1,8 @@ import config from "@config/config"; +import { + getConvictSchemaProperties, + ObjectifyFlattenedProperties, +} from "@config/config.service"; import { handleEvent } from "@repositories/notification"; import { getAllGlobalEventHandlers, @@ -240,7 +244,12 @@ export class JobConsumer extends Consumer { try { this.options = { utils: jobConsumerUtils, - config: config.getProperties(), + config: ObjectifyFlattenedProperties( + getConvictSchemaProperties({ + encryptedValues: false, + withJobHiddenProperties: false, + }), + ), }; await this.injectNotificationServices( job?.param?.notificationServices || [], diff --git a/src/types/models/config.ts b/src/types/models/config.ts index 38c62d9..5aef3bf 100644 --- a/src/types/models/config.ts +++ b/src/types/models/config.ts @@ -3,6 +3,7 @@ export interface FlattenedProperties { value: any; is_encrypted?: boolean; db_mirror?: boolean; + job_hidden?: boolean; doc?: string; default?: string; format?: string; diff --git a/src/utils/convictUtils.ts b/src/utils/convictUtils.ts index 59b2faf..27aacd2 100644 --- a/src/utils/convictUtils.ts +++ b/src/utils/convictUtils.ts @@ -139,7 +139,16 @@ export const toSafeString = (input: any) => { // A human-readable map of config categories, might change to the convict schema if possible const categoriesMap: any = { - system: ["DB", "baseDB", "env", "appName", "server", "jobs", "swaggerServer"], + system: [ + "DB", + "baseDB", + "env", + "appName", + "server", + "jobs", + "swaggerServer", + "proxies", + ], logging: ["files"], notifications: ["notifications", "grafana"], }; From 51c70178fcf07e5fd30f4de1b053c9636188e5ef Mon Sep 17 00:00:00 2001 From: Moda20 Date: Tue, 26 May 2026 15:04:01 +0100 Subject: [PATCH 2/2] Fix a bug where we try to read a config item right after deleting it, when converting schema to job accessible version --- src/config/config.service.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/config/config.service.ts b/src/config/config.service.ts index 0862be5..985fb83 100644 --- a/src/config/config.service.ts +++ b/src/config/config.service.ts @@ -107,7 +107,11 @@ export const getConvictSchemaProperties = ({ if (onlyMirroredValues && !propertiesValues[pvk].db_mirror) { delete propertiesValues[pvk]; } - if (!withJobHiddenProperties && propertiesValues[pvk].job_hidden) { + if ( + !withJobHiddenProperties && + propertiesValues[pvk] && + propertiesValues[pvk].job_hidden + ) { delete propertiesValues[pvk]; } });