CognitoUserPool
A Cognito user pool with a 12-character password policy, deletion protection and an app client. Add MFA, social login or SAML when you need them.
Infrastructure
import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';
export default new App({
run(ctx) {
const pool = new anvil.aws.CognitoUserPool('users', {
attributes: { usernameAttributes: ['email'] },
mfa: { mode: 'OPTIONAL', methods: ['TOTP'] },
});
ctx.export('userPoolId', pool.userPoolId);
ctx.export('appClientId', pool.appClientId);
},
});import anvil_cloud as anvil
def infra(ctx: anvil.Context):
pool = anvil.aws.CognitoUserPool("users",
attributes={"username_attributes": ["email"]},
mfa={"mode": "OPTIONAL", "methods": ["TOTP"]},
)
ctx.export("user_pool_id", pool.user_pool_id)
ctx.export("app_client_id", pool.app_client_id)
anvil.App(run=infra)package main
import (
"github.com/anvil-cloud/anvil/sdk/go/anvil"
anvilaws "github.com/anvil-cloud/anvil/sdk/go/anvil/aws"
)
func main() {
anvil.Run(anvil.AppConfig{
Run: func(ctx *anvil.Context) error {
pool, err := anvilaws.NewCognitoUserPool(ctx.PulumiCtx(), "users", &anvilaws.CognitoUserPoolArgs{
Attributes: &anvilaws.CognitoUserPoolAttributesArgs{
UsernameAttributes: anvilaws.CognitoUserPoolUsernameAttributeArray{anvilaws.CognitoUserPoolUsernameAttributeEmail},
},
Mfa: &anvilaws.CognitoUserPoolMfaArgs{
Mode: anvilaws.CognitoUserPoolMfaModeOPTIONAL,
Methods: anvilaws.CognitoUserPoolMfaMethodArray{anvilaws.CognitoUserPoolMfaMethodTOTP},
},
})
if err != nil {
return err
}
ctx.Export("userPoolId", pool.UserPoolId)
ctx.Export("appClientId", pool.AppClientId)
return nil
},
})
}