diff --git a/config/custom-environment-variables.js b/config/custom-environment-variables.js index b4f0554..07e29b9 100644 --- a/config/custom-environment-variables.js +++ b/config/custom-environment-variables.js @@ -18,6 +18,9 @@ module.exports = { URL: 'RABBITMQ_URL', }, TC_SLACK_WEBHOOK_URL: 'TC_SLACK_WEBHOOK_URL', - SYSTEM_USER_CLIENT_ID: 'SYSTEM_USER_CLIENT_ID', - SYSTEM_USER_CLIENT_SECRET: 'SYSTEM_USER_CLIENT_SECRET', + AUTH0_URL: 'AUTH0_URL', + AUTH0_AUDIENCE: 'AUTH0_AUDIENCE', + TOKEN_CACHE_TIME: 'TOKEN_CACHE_TIME', + AUTH0_CLIENT_ID: 'AUTH0_CLIENT_ID', + AUTH0_CLIENT_SECRET: 'AUTH0_CLIENT_SECRET', }; diff --git a/config/default.js b/config/default.js index bf0e7ee..62b9fd8 100644 --- a/config/default.js +++ b/config/default.js @@ -33,9 +33,6 @@ module.exports = { // The base url to the project/user API server API_BASE_URL: 'http://localhost:3001', - // Id and secret to generate token to make calls as system admin user - SYSTEM_USER_CLIENT_ID: '', - SYSTEM_USER_CLIENT_SECRET: '', // Disable delay exchange and use direct instead ( delete existing delay exchnge after changing) DISABLE_DELAY_EXCHANGE: false, diff --git a/config/test.js b/config/test.js index 96a0382..6fb73e3 100644 --- a/config/test.js +++ b/config/test.js @@ -23,4 +23,9 @@ module.exports = { }, TC_SLACK_WEBHOOK_URL: 'http://localhost:3001/slack', API_BASE_URL: 'http://localhost:3001', + AUTH0_URL: process.env.DEV_AUTH0_URL || '', + AUTH0_AUDIENCE: process.env.DEV_AUTH0_AUDIENCE || '', + TOKEN_CACHE_TIME: process.env.DEV_TOKEN_CACHE_TIME || 86400000, + AUTH0_CLIENT_ID: process.env.DEV_AUTH0_CLIENT_ID, + AUTH0_CLIENT_SECRET: process.env.DEV_AUTH0_CLIENT_SECRET, }; diff --git a/deploy.sh b/deploy.sh index 8708f47..c6e5c74 100755 --- a/deploy.sh +++ b/deploy.sh @@ -60,15 +60,27 @@ make_task_def(){ "value": "%s" }, { - "name": "SYSTEM_USER_CLIENT_ID", + "name": "TC_SLACK_WEBHOOK_URL", "value": "%s" }, { - "name": "SYSTEM_USER_CLIENT_SECRET", + "name": "AUTH0_URL", "value": "%s" }, { - "name": "TC_SLACK_WEBHOOK_URL", + "name": "AUTH0_AUDIENCE", + "value": "%s" + }, + { + "name": "AUTH0_CLIENT_ID", + "value": "%s" + }, + { + "name": "AUTH0_CLIENT_SECRET", + "value": "%s" + }, + { + "name": "TOKEN_CACHE_TIME", "value": "%s" } ], @@ -86,13 +98,19 @@ make_task_def(){ CAPTURE_LOGS=$(eval "echo \$${ENV}_CAPTURE_LOGS") LOGENTRIES_TOKEN=$(eval "echo \$${ENV}_LOGENTRIES_TOKEN") LOG_LEVEL=$(eval "echo \$${ENV}_LOG_LEVEL") + AUTH0_URL=$(eval "echo \$${ENV}_AUTH0_URL") + AUTH0_AUDIENCE=$(eval "echo \$${ENV}_AUTH0_AUDIENCE") + TOKEN_CACHE_TIME=$(eval "echo \$${ENV}_TOKEN_CACHE_TIME") + AUTH0_CLIENT_ID=$(eval "echo \$${ENV}_AUTH0_CLIENT_ID") + AUTH0_CLIENT_SECRET=$(eval "echo \$${ENV}_AUTH0_CLIENT_SECRET") + if [ "$ENV" = "PROD" ]; then NODE_ENV=production elif [ "$ENV" = "DEV" ]; then NODE_ENV=development fi - task_def=$(printf "$task_template" $ACCOUNT_ID $AWS_REGION $AWS_REPOSITORY $CIRCLE_SHA1 $NODE_ENV $LOG_LEVEL $CAPTURE_LOGS $LOGENTRIES_TOKEN $RABBITMQ_URL $SYSTEM_USER_CLIENT_ID $SYSTEM_USER_CLIENT_SECRET $TC_SLACK_WEBHOOK_URL $AWS_ECS_CLUSTER $AWS_REGION $NODE_ENV) + task_def=$(printf "$task_template" $ACCOUNT_ID $AWS_REGION $AWS_REPOSITORY $CIRCLE_SHA1 $NODE_ENV $LOG_LEVEL $CAPTURE_LOGS $LOGENTRIES_TOKEN $RABBITMQ_URL $TC_SLACK_WEBHOOK_URL "$AUTH0_URL" "$AUTH0_AUDIENCE" $AUTH0_CLIENT_ID "$AUTH0_CLIENT_SECRET" $TOKEN_CACHE_TIME $AWS_ECS_CLUSTER $AWS_REGION $NODE_ENV) } push_ecr_image(){ diff --git a/package.json b/package.json index 67f1978..3672438 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "config": "^1.24.0", "jackrabbit": "^4.3.0", "lodash": "^4.16.6", - "request": "^2.78.0" + "request": "^2.78.0", + "tc-core-library-js": "appirio-tech/tc-core-library-js.git#v2.3" }, "devDependencies": { "babel-cli": "^6.9.0", diff --git a/src/handlers/util.js b/src/handlers/util.js index b590709..9a264b6 100644 --- a/src/handlers/util.js +++ b/src/handlers/util.js @@ -11,6 +11,9 @@ const _ = require('lodash'); const config = require('config'); const Promise = require('bluebird'); const request = require('request'); +const tcCoreLibAuth = require('tc-core-library-js').auth; + +const M2m = tcCoreLibAuth.m2m(config); /** * Makes a GET request to the API server @@ -39,17 +42,7 @@ function requestPromise(options, cb = null) { } const getSystemUserToken = Promise.coroutine(function* () { - const formData = { - clientId: config.get('SYSTEM_USER_CLIENT_ID'), - secret: config.get('SYSTEM_USER_CLIENT_SECRET'), - }; - return yield requestPromise( - { - method: 'POST', - url: `${config.get('API_BASE_URL')}/v3/authorizations/`, - form: formData, - }, - (data, resolve) => resolve(data.result.content.token)); + return yield M2m.getMachineToken(config.AUTH0_CLIENT_ID, config.AUTH0_CLIENT_SECRET); }); /**