@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
139 lines (138 loc) • 8.83 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const translations_1 = __importDefault(require("../../properties/translations"));
const format_1 = require("../../utils/format");
/**
* Cognito User Pool
*/
exports.default = ({ service: rawData, account, region, }) => {
const { Id: id, Arn: arn, Name: name, Policies: policies, LambdaConfig: lambdaConfig, Status: status, LastModifiedDate: lastModifiedDate, CreationDate: creationDate, SchemaAttributes: schemaAttributes, AutoVerifiedAttributes: autoVerifiedAttributes, AliasAttributes: aliasAttributes, UsernameAttributes: usernameAttributes, SmsVerificationMessage: smsVerificationMessage, EmailVerificationMessage: emailVerificationMessage, EmailVerificationSubject: emailVerificationSubject, VerificationMessageTemplate: verificationMessageTemplate, SmsAuthenticationMessage: smsAuthenticationMessage, MfaConfiguration: mfaConfiguration, DeviceConfiguration: deviceConfiguration, EstimatedNumberOfUsers: estimatedNumberOfUsers, EmailConfiguration: emailConfiguration, SmsConfiguration: smsConfiguration, Tags: userPoolTags, SmsConfigurationFailure: smsConfigurationFailure, EmailConfigurationFailure: emailConfigurationFailure, Domain: domain, CustomDomain: customDomain, AdminCreateUserConfig: adminCreateUserConfig, UserPoolAddOns: userPoolAddOns, UsernameConfiguration: usernameConfiguration, AccountRecoverySetting: accountRecoverySetting, } = rawData;
const schemaAttributeList = schemaAttributes?.map(({ Name: schemaAttributeName, AttributeDataType: attributeDataType, DeveloperOnlyAttribute: developerOnlyAttribute, Mutable: mutable, Required: required, NumberAttributeConstraints: numberAttributeConstraints, StringAttributeConstraints: stringAttributeConstraints, }) => {
return {
id: sdk_1.generateUniqueId({
arn,
schemaAttributeName,
attributeDataType,
developerOnlyAttribute,
mutable,
required,
numberAttributeConstraints,
stringAttributeConstraints,
}),
name: schemaAttributeName,
attributeDataType,
developerOnlyAttribute: developerOnlyAttribute ? translations_1.default.yes : translations_1.default.no,
mutable: mutable ? translations_1.default.yes : translations_1.default.no,
required: required ? translations_1.default.yes : translations_1.default.no,
numberAttributeConstraintsMinValue: numberAttributeConstraints?.MinValue || '',
numberAttributeConstraintsMaxValue: numberAttributeConstraints?.MaxValue || '',
stringAttributeConstraintsMinValue: stringAttributeConstraints?.MinLength || '',
stringAttributeConstraintsMaxValue: stringAttributeConstraints?.MaxLength || '',
};
}) || [];
const accountRecoverySettings = accountRecoverySetting?.RecoveryMechanisms?.map(({ Priority: priority, Name: recoveryOptionName }) => {
return {
id: sdk_1.generateUniqueId({
arn,
priority,
recoveryOptionName,
}),
priority,
name: recoveryOptionName,
};
}) || [];
const userPool = {
id,
accountId: account,
arn,
name,
policies: {
id: sdk_1.generateUniqueId({
arn,
...policies,
}),
minimumLength: policies?.PasswordPolicy?.MinimumLength || 0,
requireUppercase: policies?.PasswordPolicy?.RequireUppercase
? translations_1.default.yes
: translations_1.default.no,
requireLowercase: policies?.PasswordPolicy?.RequireLowercase
? translations_1.default.yes
: translations_1.default.no,
requireNumbers: policies?.PasswordPolicy?.RequireNumbers ? translations_1.default.yes : translations_1.default.no,
requireSymbols: policies?.PasswordPolicy?.RequireSymbols ? translations_1.default.yes : translations_1.default.no,
temporaryPasswordValidityDays: policies?.PasswordPolicy?.MinimumLength || 0,
},
lambdaConfig: {
id: sdk_1.generateUniqueId({
arn,
...lambdaConfig,
}),
preSignUp: lambdaConfig?.PreSignUp || '',
customMessage: lambdaConfig?.CustomMessage || '',
postConfirmation: lambdaConfig?.PostConfirmation || '',
preAuthentication: lambdaConfig?.PreAuthentication || '',
postAuthentication: lambdaConfig?.PostAuthentication || '',
defineAuthChallenge: lambdaConfig?.DefineAuthChallenge || '',
createAuthChallenge: lambdaConfig?.CreateAuthChallenge || '',
verifyAuthChallengeResponse: lambdaConfig?.VerifyAuthChallengeResponse || '',
preTokenGeneration: lambdaConfig?.PreTokenGeneration || '',
userMigration: lambdaConfig?.UserMigration || '',
customSMSSenderLambdaVersion: lambdaConfig?.CustomSMSSender?.LambdaVersion || '',
customSMSSenderLambdaArn: lambdaConfig?.CustomSMSSender?.LambdaArn || '',
customEmailSenderLambdaVersion: lambdaConfig?.CustomEmailSender?.LambdaVersion || '',
customEmailSenderLambdaArn: lambdaConfig?.CustomEmailSender?.LambdaArn || '',
kmsKeyID: lambdaConfig?.KMSKeyID || '',
},
status,
lastModifiedDate: lastModifiedDate
? lastModifiedDate.toISOString()
: undefined,
creationDate: creationDate ? creationDate.toISOString() : undefined,
schemaAttributes: schemaAttributeList,
autoVerifiedAttributes,
aliasAttributes,
usernameAttributes,
smsVerificationMessage,
emailVerificationMessage,
emailVerificationSubject,
verificationMessageTemplateSmsMessage: verificationMessageTemplate?.SmsMessage || '',
verificationMessageTemplateEmailMessage: verificationMessageTemplate?.EmailMessage || '',
verificationMessageTemplateEmailSubject: verificationMessageTemplate?.EmailSubject || '',
verificationMessageTemplateEmailMessageByLink: verificationMessageTemplate?.EmailMessageByLink || '',
verificationMessageTemplateEmailSubjectByLink: verificationMessageTemplate?.EmailSubjectByLink || '',
verificationMessageTemplateDefaultEmailOption: verificationMessageTemplate?.DefaultEmailOption || '',
smsAuthenticationMessage,
mfaConfiguration,
deviceConfigChallengeRequiredOnNewDevice: deviceConfiguration?.ChallengeRequiredOnNewDevice ? translations_1.default.yes : translations_1.default.no,
deviceConfigDeviceOnlyRememberedOnUserPrompt: deviceConfiguration?.DeviceOnlyRememberedOnUserPrompt ? translations_1.default.yes : translations_1.default.no,
estimatedNumberOfUsers,
emailConfigSourceArn: emailConfiguration?.SourceArn || '',
emailConfigReplyToEmailAddress: emailConfiguration?.ReplyToEmailAddress || '',
emailConfigEmailSendingAccount: emailConfiguration?.EmailSendingAccount || '',
emailConfigFrom: emailConfiguration?.From || '',
emailConfigConfigurationSet: emailConfiguration?.ConfigurationSet || '',
smsConfigurationSnsCallerArn: smsConfiguration?.SnsCallerArn || '',
smsConfigurationExternalId: smsConfiguration?.ExternalId || '',
smsConfigurationFailure,
emailConfigurationFailure,
domain,
customDomain,
adminCreateUserConfigAllowAdminCreateUserOnly: adminCreateUserConfig?.AllowAdminCreateUserOnly ? translations_1.default.yes : translations_1.default.no,
adminCreateUserConfigUnusedAccountValidityDays: adminCreateUserConfig?.UnusedAccountValidityDays || 0,
adminCreateUserConfigInviteMessageTemplateSMSMessage: adminCreateUserConfig?.InviteMessageTemplate?.SMSMessage || '',
adminCreateUserConfigInviteMessageTemplateEmailMessage: adminCreateUserConfig?.InviteMessageTemplate?.EmailMessage || '',
adminCreateUserConfigInviteMessageTemplateEmailSubject: adminCreateUserConfig?.InviteMessageTemplate?.EmailSubject || '',
userPoolAddOnsAdvancedSecurityMode: userPoolAddOns?.AdvancedSecurityMode || '',
usernameConfigurationCaseSensitive: usernameConfiguration?.CaseSensitive
? translations_1.default.yes
: translations_1.default.no,
accountRecoverySettings,
region,
tags: format_1.formatTagsFromMap(userPoolTags),
};
return userPool;
};