Welcome to dm-driver-cognito 👋

Build Status NPM Package Maintainability Documentation Downloads/week lerna

A Data Migration driver to query/modify a cognito user pool.

Configuration

Parameters

The DynamoDB driver accepts the following parameters as part of its configuration:

Name Type Required Description
region string Yes The AWS Region where this user pool exists
userPool string Yes ID of the user pool to connect to
profile string No Name of the AWS profile to use

Example

The following configuration creates a Cognito driver that connects to a user pool in the us-east-1 stack some-stack-name.

module.exports = {
  defaultStage: "prod",
  migrationDirectory: "migrations",
  stages: {
    prod: {
      defaultParams: {
        region: "us-east-1",
      },
      drivers: {
        users: {
          driver: require("dm-driver-cognito"),
          params: {
            userPoolDriver: {
              // Use this processor to get values from CloudFormation
              processor: require("dm-processor-cf"),
              params: {
                stack: "some-stack-name",
                output: "SomeOutputName",
              },
            },
          },
        },
      },
    },
  },
};

Methods

addUser

Creates a new user in the user pool

Arguments

Name Description
username Username to be added.
password A temporary password
attributes Any other parameters that would normally be provided in AdminCreateUserRequest

Example

This example creates a new user for "Bill Lumbergh"

async up(context: ScriptContext, log: Logger) {
  const userPool = await context.getDriver<UserPoolDriver>("userPoolDriver");
  await userPool.addUser("blumbergh", "password", { UserAttributes: [
    Name: "email",
    Value: "blumbergh@initech.com"
  ]});
}

getUser

Queries for a user based on their username

Arguments

Name Description
username The username to look for

Example

Look for the previously created user blumberg

async up(context: ScriptContext, log: Logger) {
  const userPool = await context.getDriver<UserPoolDriver>("userPoolDriver");
  const user = await userPool.getUser("blumbergh");
}

deleteUser

Removes the given username from the user pool

Arguments

Name Description
username The username to delete

Example

Delete the previously created user blumberg

async up(context: ScriptContext, log: Logger) {
  const userPool = await context.getDriver<UserPoolDriver>("userPoolDriver");
  const user = await userPool.deleteUser("blumbergh");
}