launch-user-and-identity-pool
v0.1.0
Published
This CDK construct creates a Cognito User Pool and Identity Pool with configurable settings.
Downloads
6
Readme
Launch User and Identity Pool CDK Construct
This CDK construct creates a Cognito User Pool and Identity Pool with configurable settings.
Features
- Creates a Cognito User Pool with customizable settings
- Creates a User Pool Client
- Creates an Identity Pool with authentication providers
- Attaches IAM roles for authenticated and unauthenticated users
- Configurable password policies, sign-in aliases, and standard attributes
- CloudFormation outputs for User Pool ID, Client ID, and Identity Pool ID
Installation
npm install launch-user-and-identity-poolUsage
As a Construct
import { LaunchUserAndIdentityPool, LaunchUserAndIdentityPoolProps } from 'launch-user-and-identity-pool';
import { AccountRecovery } from 'aws-cdk-lib/aws-cognito';
const props: LaunchUserAndIdentityPoolProps = {
// Basic configuration
account: '123456789012',
region: 'us-east-1',
client: 'CSJ',
env: 'STAG',
projectId: 'P0000',
appTag: 'SIUGJ',
// User Pool configuration
userPoolName: 'csj-stag-siugj-user-pool',
allowUnauthenticatedIdentities: true,
identityPoolName: 'csj-stag-siugj-identity-pool',
// Auto verification settings
autoVerifyEmail: true,
autoVerifyPhone: true,
// Password policy
passwordPolicy: {
minLength: 8,
requireLowercase: true,
requireUppercase: true,
requireDigits: true,
requireSymbols: true,
tempPasswordValidityDays: 30,
},
// User Pool settings
deletionProtection: true,
signInAliases: {
username: true,
email: true,
phone: true,
},
accountRecovery: AccountRecovery.EMAIL_ONLY,
keepOriginalAttrs: {
email: true,
phone: true,
},
selfSignUpEnabled: true,
// Standard attributes
standardAttributes: {
preferredUsername: {
required: true,
mutable: true,
},
phoneNumber: {
required: true,
mutable: true,
},
email: {
required: true,
mutable: true,
},
fullname: {
required: true,
mutable: true,
},
},
// IAM roles
userPoolRoles: {
smsRoleArn: 'arn:aws:iam::123456789012:role/sms-role',
authenticatedRoleArn: 'arn:aws:iam::123456789012:role/authenticated-role',
unauthenticatedRoleArn: 'arn:aws:iam::123456789012:role/unauthenticated-role',
},
};
new LaunchUserAndIdentityPool(this, 'CognitoConstruct', props);As a Stack
import { LaunchUserAndIdentityPoolStack } from 'launch-user-and-identity-pool';
new LaunchUserAndIdentityPoolStack(this, 'MyCognitoStack', {
props: props,
env: {
account: '123456789012',
region: 'us-east-1',
},
});Useful commands
npm run buildcompile typescript to jsnpm run watchwatch for changes and compilenpm run testperform the jest unit testsnpx cdk deploydeploy this stack to your default AWS account/regionnpx cdk diffcompare deployed stack with current statenpx cdk synthemits the synthesized CloudFormation template
