diff --git a/src/config/config.service.ts b/src/config/config.service.ts index 7e321c2..985fb83 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,13 @@ export const getConvictSchemaProperties = ({ if (onlyMirroredValues && !propertiesValues[pvk].db_mirror) { delete propertiesValues[pvk]; } + if ( + !withJobHiddenProperties && + propertiesValues[pvk] && + 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"], };