UNPKG

cloudworker-proxy

Version:
168 lines (131 loc) 5.37 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAccessKeyForTenant = exports.createAccessKeyForTenant = undefined; var _fetch = require('../fetch'); var _fetch2 = _interopRequireDefault(_fetch); var _config = require('../config'); var _config2 = _interopRequireDefault(_config); var _utils = require('../utils'); var utils = _interopRequireWildcard(_utils); var _refreshToken = require('../login/refreshToken'); var _refreshToken2 = _interopRequireDefault(_refreshToken); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* * Create Access Key For Tenant */ var createAccessKeyForTenant = function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(tenant, title) { var user, response, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _refreshToken2.default)(); case 2: user = utils.getLoggedInUser(); _context.next = 5; return (0, _fetch2.default)(`${_config2.default.backendUrl}tenants/${tenant}/accessKeys`, { method: 'POST', body: JSON.stringify({ tenantName: tenant, userName: user.username, title: title || 'serverless_' + Math.round(+new Date() / 1000) }), headers: { Authorization: `bearer ${user.idToken}` } }); case 5: response = _context.sent; _context.next = 8; return response.json(); case 8: data = _context.sent; return _context.abrupt('return', data.secretAccessKey); case 10: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function createAccessKeyForTenant(_x, _x2) { return _ref.apply(this, arguments); }; }(); /* * Get Access Key For Tenant * - Fetches the access key for the specified `tenant` * - If an access key is present as an env var, that overrides all else */ var getAccessKeyForTenant = function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(tenant) { var user; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!process.env.SERVERLESS_ACCESS_KEY) { _context2.next = 2; break; } return _context2.abrupt('return', process.env.SERVERLESS_ACCESS_KEY); case 2: if (tenant) { _context2.next = 4; break; } throw new Error('SDK: getAccessKeyForTenant() requires a "tenant".'); case 4: _context2.next = 6; return (0, _refreshToken2.default)(); case 6: user = utils.getLoggedInUser(); // Check if in config file, if not, & if possible, create one if (!(!user.accessKeys || !user.accessKeys[tenant])) { _context2.next = 17; break; } if (!user.idToken) { _context2.next = 16; break; } if (!user.accessKeys) { user.accessKeys = {}; } _context2.next = 12; return createAccessKeyForTenant(tenant); case 12: user.accessKeys[tenant] = _context2.sent; utils.writeConfigFile({ users: { [user.userId]: { dashboard: { accessKeys: { [tenant]: user.accessKeys[tenant] } } } } }); _context2.next = 17; break; case 16: throw new Error(`Could not find an access key for tenant ${tenant}. Log out and log in again to create a new acce ss key for this tenant.`); case 17: return _context2.abrupt('return', user.accessKeys[tenant]); case 18: case 'end': return _context2.stop(); } } }, _callee2, undefined); })); return function getAccessKeyForTenant(_x3) { return _ref2.apply(this, arguments); }; }(); exports.createAccessKeyForTenant = createAccessKeyForTenant; exports.getAccessKeyForTenant = getAccessKeyForTenant; //# sourceMappingURL=accessKeys.js.map