diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e647089b..410498a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,7 +81,6 @@ jobs: CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_DEV }} DB_SERVICE_NAME: ${{ vars.DB_SERVICE_NAME_DEV }} - MESSAGE_QUEUE_DATABASE_NAME: ${{ vars.MESSAGE_QUEUE_DATABASE_NAME }} MESSAGE_QUEUE_NAME: ${{ vars.MESSAGE_QUEUE_NAME }} NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_DEV }} PROXY_FQDN: ${{ vars.PROXY_FQDN_DEV }} @@ -111,7 +110,6 @@ jobs: CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_STG }} DB_SERVICE_NAME: ${{ vars.DB_SERVICE_NAME_STG }} - MESSAGE_QUEUE_DATABASE_NAME: ${{ vars.MESSAGE_QUEUE_DATABASE_NAME }} MESSAGE_QUEUE_NAME: ${{ vars.MESSAGE_QUEUE_NAME }} NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_STG }} PROXY_FQDN: ${{ vars.PROXY_FQDN_STG }} @@ -141,7 +139,6 @@ jobs: CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_PRD }} DB_SERVICE_NAME: ${{ vars.DB_SERVICE_NAME_PRD }} - MESSAGE_QUEUE_DATABASE_NAME: ${{ vars.MESSAGE_QUEUE_DATABASE_NAME }} MESSAGE_QUEUE_NAME: ${{ vars.MESSAGE_QUEUE_NAME }} NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_PRD }} PROXY_FQDN: ${{ vars.PROXY_FQDN_PRD }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d9d5d0b3..fe03029c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,9 +27,6 @@ on: DB_SERVICE_NAME: required: true type: string - MESSAGE_QUEUE_DATABASE_NAME: - required: true - type: string MESSAGE_QUEUE_NAME: required: true type: string @@ -72,7 +69,6 @@ env: CF_SPACE_NAME: ${{ inputs.CF_SPACE_NAME }} DB_SERVICE_NAME: ${{ inputs.DB_SERVICE_NAME }} GA4_CREDS: ${{ secrets.GA4_CREDS }} - MESSAGE_QUEUE_DATABASE_NAME: ${{ inputs.MESSAGE_QUEUE_DATABASE_NAME }} MESSAGE_QUEUE_NAME: ${{ inputs.MESSAGE_QUEUE_NAME }} NEW_RELIC_APP_NAME: ${{ inputs.NEW_RELIC_APP_NAME }} NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} diff --git a/.github/workflows/manual_deploy_to_dev.yml b/.github/workflows/manual_deploy_to_dev.yml index b86b7205..04647fc9 100644 --- a/.github/workflows/manual_deploy_to_dev.yml +++ b/.github/workflows/manual_deploy_to_dev.yml @@ -15,7 +15,6 @@ jobs: CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_DEV }} DB_SERVICE_NAME: ${{ vars.DB_SERVICE_NAME_DEV }} - MESSAGE_QUEUE_DATABASE_NAME: ${{ vars.MESSAGE_QUEUE_DATABASE_NAME }} MESSAGE_QUEUE_NAME: ${{ vars.MESSAGE_QUEUE_NAME }} NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_DEV }} PROXY_FQDN: ${{ vars.PROXY_FQDN_DEV }} diff --git a/index.js b/index.js index 9bd8097b..05cf3ce7 100644 --- a/index.js +++ b/index.js @@ -82,7 +82,7 @@ async function _processReport(appConfig, context, reportConfig, processor) { await processor.processChain(context); logger.info("Processing complete"); } catch (e) { - logger.error("Encountered an error"); + logger.error("Encountered an error during report processing"); logger.error(util.inspect(e)); } }); diff --git a/manifest.consumer.yml b/manifest.consumer.yml index 16ad4b8b..40900320 100644 --- a/manifest.consumer.yml +++ b/manifest.consumer.yml @@ -21,7 +21,6 @@ applications: ANALYTICS_REPORT_EMAIL: ${ANALYTICS_REPORT_EMAIL} AWS_CACHE_TIME: '0' GOOGLE_APPLICATION_CREDENTIALS: /home/vcap/app/${ANALYTICS_KEY_FILE_NAME} - MESSAGE_QUEUE_DATABASE_NAME: ${MESSAGE_QUEUE_DATABASE_NAME} MESSAGE_QUEUE_NAME: ${MESSAGE_QUEUE_NAME} NEW_RELIC_APP_NAME: ${NEW_RELIC_APP_NAME} NEW_RELIC_LICENSE_KEY: ${NEW_RELIC_LICENSE_KEY} diff --git a/manifest.publisher.yml b/manifest.publisher.yml index 12a2ed8d..f916a61a 100644 --- a/manifest.publisher.yml +++ b/manifest.publisher.yml @@ -21,7 +21,6 @@ applications: # The default path for reports (used for gov-wide reports) AWS_BUCKET_PATH: data/live AWS_CACHE_TIME: '0' - MESSAGE_QUEUE_DATABASE_NAME: ${MESSAGE_QUEUE_DATABASE_NAME} MESSAGE_QUEUE_NAME: ${MESSAGE_QUEUE_NAME} NEW_RELIC_APP_NAME: ${NEW_RELIC_APP_NAME} NEW_RELIC_LICENSE_KEY: ${NEW_RELIC_LICENSE_KEY} diff --git a/src/app_config.js b/src/app_config.js index 776f811a..b212e407 100644 --- a/src/app_config.js +++ b/src/app_config.js @@ -195,7 +195,7 @@ class AppConfig { } get messageQueueName() { - return process.env.MESSAGE_QUEUE_NAME; + return process.env.MESSAGE_QUEUE_NAME || "analytics_reporter_job_queue"; } get postgres() { diff --git a/src/pg_boss_client.js b/src/pg_boss_client.js index cb719fa3..58c47030 100644 --- a/src/pg_boss_client.js +++ b/src/pg_boss_client.js @@ -15,12 +15,24 @@ class PgBossClient { /** * Execute PgBoss SQL using the knex library interface * - * @param {string} text the SQL string to execute. - * @param {string[]} values the values to insert into the SQL string. + * @param {string} sql the SQL string to execute. + * @param {string[]} parameters the parameters to insert into the SQL string. * @returns {Promise} which resolves with the result of the SQL query. */ - async executeSql(text, values) { - return this.#knex.raw(text, values); + executeSql(sql, parameters = []) { + // This is needed to replace pg-boss' $1, $2 arguments + // into knex's :val, :val2 style. + const replacedSql = sql.replace( + /\$(\d+)\b/g, + (_, number) => `:param_${number}`, + ); + + const parametersObject = {}; + parameters.forEach( + (value, index) => (parametersObject[`param_${index + 1}`] = value), + ); + + return this.#knex.raw(replacedSql, parametersObject); } }