diff --git a/lib/s3-utils.js b/lib/s3-utils.js index e684b59de..c7e535a28 100644 --- a/lib/s3-utils.js +++ b/lib/s3-utils.js @@ -76,6 +76,9 @@ module.exports = function createUtils({ resources, env, aws }) { }).promise(); } function getBucket(bucket) { + if (typeof bucket !== 'string') { + throw new Error('expected string bucket name'); + } debug(`wrapping ${bucket} bucket`); let api = { get: key => get({ key, bucket }), diff --git a/lib/samplebot/bot.js b/lib/samplebot/bot.js index 6c67b41b0..6c3e0ed5c 100644 --- a/lib/samplebot/bot.js +++ b/lib/samplebot/bot.js @@ -20,7 +20,15 @@ const _1 = require("../"); const DEFAULT_CONF = require("./default-conf"); function createBotFromEnv(env) { const { PRODUCTS, ORG_DOMAIN, AUTO_VERIFY_FORMS, AUTO_APPROVE_APPS, AUTO_APPROVE_EMPLOYEES, GRAPHQL_AUTH, IS_LOCAL } = env; - _1.tradle.env.set(env); + _1.tradle.env.set({ + PRODUCTS, + ORG_DOMAIN, + AUTO_VERIFY_FORMS, + AUTO_APPROVE_APPS, + AUTO_APPROVE_EMPLOYEES, + GRAPHQL_AUTH, + IS_LOCAL + }); const NAMESPACE = ORG_DOMAIN.split('.').reverse().join('.'); const deploymentModels = deployment_models_1.default(NAMESPACE); const DEPLOYMENT = deploymentModels.deployment.id; @@ -37,9 +45,10 @@ function createBotFromEnv(env) { autoApprove: yn(AUTO_APPROVE_APPS), graphqlRequiresAuth: yn(GRAPHQL_AUTH) }); + const confBucket = bot.resources.buckets.PublicConf; const CONF_FILE = 'bot-conf.json'; - const putConf = (conf) => bot.resources.buckets.PublicConf.put(CONF_FILE, conf); - const cacheableConf = bot.resources.buckets.PublicConf.getCacheable({ + const putConf = (conf) => confBucket.put(CONF_FILE, conf); + const cacheableConf = confBucket.getCacheable({ key: CONF_FILE, ttl: 60000, parse: JSON.parse.bind(JSON) diff --git a/lib/samplebot/default-conf.json b/lib/samplebot/default-conf.json index d5513e114..69b134d1c 100644 --- a/lib/samplebot/default-conf.json +++ b/lib/samplebot/default-conf.json @@ -1,8 +1,10 @@ { "org": { - "logo": "https://s3.amazonaws.com/tradle-public-images/safe-re.png", - "domain": "safere.io", - "name": "SafeRe", + "LOGO": "https://s3.amazonaws.com/tradle-public-images/safe-re.png", + "DOMAIN": "safere.io", + "NAME": "SafeRe" + }, + "products": { "products": "nl.tradle.DigitalPassport,tradle.CorporateBankAccount,tradle.LifeInsurance,tradle.MortgageProduct,tradle.CurrentAccount,tradle.OnfidoVerification", "autoApprove": false, "autoVerify": false diff --git a/lib/samplebot/strategy/products.js b/lib/samplebot/strategy/products.js index 6cdf4336f..b79c9afb5 100644 --- a/lib/samplebot/strategy/products.js +++ b/lib/samplebot/strategy/products.js @@ -37,7 +37,7 @@ const DONT_FORWARD_FROM_EMPLOYEE = [ 'tradle.AssignRelationshipManager' ]; function createProductsBot(opts = {}) { - const { tradle = defaultTradleInstance, models = baseModels, products = DEFAULT_PRODUCTS, namespace = 'test.bot', approveAllEmployees, autoVerify, autoApprove, graphqlRequiresAuth } = opts; + const { tradle, models = baseModels, products = DEFAULT_PRODUCTS, namespace = 'test.bot', approveAllEmployees, autoVerify, autoApprove, graphqlRequiresAuth } = opts; const { ONFIDO_API_KEY } = process.env; const productsAPI = createProductsStrategy({ namespace, diff --git a/lib/utils.js b/lib/utils.js index 3cb229023..feddd2653 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -55,6 +55,7 @@ const string_utils_1 = require("./string-utils"); const constants_1 = require("./constants"); const errors_1 = require("./errors"); const debug = require('debug')('tradle:sls:utils'); +const notNull = obj => obj != null; const isPromise = obj => obj && typeof obj.then === 'function'; exports.isPromise = isPromise; const { omitVirtual, setVirtual, pickVirtual } = buildResource; @@ -576,5 +577,4 @@ exports.getRequestIps = (req) => { req.get('x-real-ip') ].filter(notNull); }; -const notNull = obj => obj != null; //# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/src/s3-utils.ts b/src/s3-utils.ts index 62f432db5..cd4120b5f 100644 --- a/src/s3-utils.ts +++ b/src/s3-utils.ts @@ -114,6 +114,10 @@ module.exports = function createUtils ({ resources, env, aws }) { } function getBucket (bucket) { + if (typeof bucket !== 'string') { + throw new Error('expected string bucket name') + } + debug(`wrapping ${bucket} bucket`) let api = { get: key => get({ key, bucket }), diff --git a/src/samplebot/bot.ts b/src/samplebot/bot.ts index 3d6198921..d8cb511ca 100644 --- a/src/samplebot/bot.ts +++ b/src/samplebot/bot.ts @@ -20,7 +20,17 @@ export default function createBotFromEnv (env) { IS_LOCAL } = env - tradle.env.set(env) + // important: don't set all props from env + // as in testing mode it overrides resources like R_BUCKET_... + tradle.env.set({ + PRODUCTS, + ORG_DOMAIN, + AUTO_VERIFY_FORMS, + AUTO_APPROVE_APPS, + AUTO_APPROVE_EMPLOYEES, + GRAPHQL_AUTH, + IS_LOCAL + }) const NAMESPACE = ORG_DOMAIN.split('.').reverse().join('.') const deploymentModels = createDeploymentModels(NAMESPACE) @@ -44,9 +54,10 @@ export default function createBotFromEnv (env) { graphqlRequiresAuth: yn(GRAPHQL_AUTH) }) + const confBucket = bot.resources.buckets.PublicConf const CONF_FILE = 'bot-conf.json' - const putConf = (conf) => bot.resources.buckets.PublicConf.put(CONF_FILE, conf) - const cacheableConf = bot.resources.buckets.PublicConf.getCacheable({ + const putConf = (conf) => confBucket.put(CONF_FILE, conf) + const cacheableConf = confBucket.getCacheable({ key: CONF_FILE, ttl: 60000, parse: JSON.parse.bind(JSON) diff --git a/src/samplebot/default-conf.json b/src/samplebot/default-conf.json index 5a0434bd5..69b134d1c 100644 --- a/src/samplebot/default-conf.json +++ b/src/samplebot/default-conf.json @@ -1,4 +1,21 @@ { + "org": { + "LOGO": "https://s3.amazonaws.com/tradle-public-images/safe-re.png", + "DOMAIN": "safere.io", + "NAME": "SafeRe" + }, + "products": { + "products": "nl.tradle.DigitalPassport,tradle.CorporateBankAccount,tradle.LifeInsurance,tradle.MortgageProduct,tradle.CurrentAccount,tradle.OnfidoVerification", + "autoApprove": false, + "autoVerify": false + }, + "style": { + "_t": "tradle.StylesPack", + "backgroundImage": { + "url": "https://s3.amazonaws.com/tradle-public-images/blue-underwater-gradient-opacity-15.png" + }, + "logoNeedsText": true + }, "plugins": { "customize-message": { "tradle.FormRequest": { diff --git a/src/samplebot/strategy/products.ts b/src/samplebot/strategy/products.ts index ca5277807..89c042ad2 100644 --- a/src/samplebot/strategy/products.ts +++ b/src/samplebot/strategy/products.ts @@ -32,7 +32,7 @@ const DONT_FORWARD_FROM_EMPLOYEE = [ export default function createProductsBot (opts={}) { const { - tradle=defaultTradleInstance, + tradle, models=baseModels, products=DEFAULT_PRODUCTS, namespace='test.bot', diff --git a/src/utils.ts b/src/utils.ts index 266d1d70b..975e5126f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -29,6 +29,7 @@ import Resources = require('./resources') import { ExecutionTimeout } from './errors' const debug = require('debug')('tradle:sls:utils') +const notNull = obj => obj != null const isPromise = obj => obj && typeof obj.then === 'function' const { omitVirtual, setVirtual, pickVirtual } = buildResource const LAUNCH_STACK_BASE_URL = 'https://console.aws.amazon.com/cloudformation/home' @@ -689,5 +690,3 @@ export const getRequestIps = (req) => { req.get('x-real-ip') ].filter(notNull) } - -const notNull = obj => obj != null