UNPKG

cdk-multi-profile-plugin

Version:

Adds multi profile/account, mfa and aws sso support to cdk apps

68 lines 6.5 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProfileConfig = void 0; const fs = __importStar(require("fs-extra")); const ini = __importStar(require("ini")); class ProfileConfig { constructor(path) { try { const raw = fs.readFileSync(path, { encoding: 'utf-8', }); this.config = ini.parse(raw); } catch (e) { this.config = {}; } } getProfile(profile) { return this.config[`profile ${profile}`]; } getSSOSession(ssoSession) { return this.config[`sso-session ${ssoSession}`]; } getSSOSettings(profile) { var _a, _b; if (!this.isSSOProfile(profile)) return {}; const config = this.getProfile(profile); let ssoConfig = {}; if (config === null || config === void 0 ? void 0 : config.sso_session) { ssoConfig = this.getSSOSession(config.sso_session); } const ssoSettings = { sso_start_url: (_a = config === null || config === void 0 ? void 0 : config.sso_start_url) !== null && _a !== void 0 ? _a : ssoConfig === null || ssoConfig === void 0 ? void 0 : ssoConfig.sso_start_url, sso_region: (_b = config === null || config === void 0 ? void 0 : config.sso_region) !== null && _b !== void 0 ? _b : ssoConfig === null || ssoConfig === void 0 ? void 0 : ssoConfig.sso_region, }; return ssoSettings; } isSSOProfile(profile) { const config = this.getProfile(profile); return Boolean((config === null || config === void 0 ? void 0 : config.sso_start_url) || (config === null || config === void 0 ? void 0 : config.sso_session)); } } exports.ProfileConfig = ProfileConfig; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvZmlsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IseUNBQTJCO0FBRTNCLE1BQWEsYUFBYTtJQUd4QixZQUFZLElBQVk7UUFDdEIsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO2dCQUNoQyxRQUFRLEVBQUUsT0FBTzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFrQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxjQUFjLENBQUMsT0FBZTs7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLFNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBQzNDLElBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsRUFBRTtZQUN2QixTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLFdBQVcsR0FBRztZQUNsQixhQUFhLEVBQUUsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxtQ0FBSSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsYUFBYTtZQUNoRSxVQUFVLEVBQUUsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVSxtQ0FBSSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsVUFBVTtTQUN4RCxDQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLFlBQVksQ0FBQyxPQUFlO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsT0FBTyxPQUFPLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxNQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxXQUFXLENBQUEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQTNDRCxzQ0EyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBpbmkgZnJvbSAnaW5pJztcblxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb25maWcge1xuICBwcml2YXRlIGNvbmZpZzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbiAgY29uc3RydWN0b3IocGF0aDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhdyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY29uZmlnID0gaW5pLnBhcnNlKHJhdyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5jb25maWcgPSB7fTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvZmlsZShwcm9maWxlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdbYHByb2ZpbGUgJHtwcm9maWxlfWBdO1xuICB9XG5cbiAgcHVibGljIGdldFNTT1Nlc3Npb24oc3NvU2Vzc2lvbjogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnW2Bzc28tc2Vzc2lvbiAke3Nzb1Nlc3Npb259YF07XG4gIH1cblxuICBwdWJsaWMgZ2V0U1NPU2V0dGluZ3MocHJvZmlsZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmlzU1NPUHJvZmlsZShwcm9maWxlKSkgcmV0dXJuIHt9O1xuXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRQcm9maWxlKHByb2ZpbGUpO1xuICAgIGxldCBzc29Db25maWc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAoY29uZmlnPy5zc29fc2Vzc2lvbikge1xuICAgICAgc3NvQ29uZmlnID0gdGhpcy5nZXRTU09TZXNzaW9uKGNvbmZpZy5zc29fc2Vzc2lvbik7XG4gICAgfVxuICAgIGNvbnN0IHNzb1NldHRpbmdzID0ge1xuICAgICAgc3NvX3N0YXJ0X3VybDogY29uZmlnPy5zc29fc3RhcnRfdXJsID8/IHNzb0NvbmZpZz8uc3NvX3N0YXJ0X3VybCxcbiAgICAgIHNzb19yZWdpb246IGNvbmZpZz8uc3NvX3JlZ2lvbiA/PyBzc29Db25maWc/LnNzb19yZWdpb24sXG4gICAgfTtcbiAgICByZXR1cm4gc3NvU2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgaXNTU09Qcm9maWxlKHByb2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0UHJvZmlsZShwcm9maWxlKTtcblxuICAgIHJldHVybiBCb29sZWFuKGNvbmZpZz8uc3NvX3N0YXJ0X3VybCB8fCBjb25maWc/LnNzb19zZXNzaW9uKTtcbiAgfVxufVxuIl19