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.

API & Auth · anvil:aws:CognitoUserPool

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
        },
    })
}

← Back to CognitoUserPool docs