Skip to content

(@aws-cdk/aws-cognito): SettingAttribute 'fullname' is not consistent with documentation. #17361

@miguelcss

Description

@miguelcss

What is the problem?

Using aws-cognito to construct a new pool, the SettingAttribute interface is not consistent to the Cognito documentation.
The README.md points to the cognito documentation for a list of standard attributes user-pool-settings-attributes which specifically has 'name' property. Configuring cognito pool in AWS console, users are also familiar with 'name' .

Yet using the standardAttributes: { name: {... this option is not available. Diggin on the code one finds the actual mapping here and we can see we need to use 'fullname' for 'name'. This is convoluted and not mentioned anywhere in documentation, which leads to unexpected outcomes

Note: same goes for

  profilePicture: 'picture',
  profilePage: 'profile',
  timezone: 'zoneinfo',  // arguably the worst offender

Why was this mapping created to differ from documentation? It seems odd.

I understand changing the value will now break consumers, but consider making it match Cognito documentation in future major version bump. In the meantime refer to this mapping in documentation/README.md

Reproduction Steps

 const pool = new cognito.UserPool(this, 'MyPool', {
      userPoolName: 'CoolPool',
      standardAttributes: {
        name: {
          required: true,
          mutable: true,
        },
        email: {
          required: true,
          mutable: true,
        }
      },
      (...)
    });

What did you expect to happen?

Have cognito pool with documented parameter name enabled.

What actually happened?

Error building construct:

lib/cognito-pool.ts:32:9 - error TS2322: Type '{ name: { required: true; mutable: true; }; email: { required: true; mutable: true; }; }' is not assignable to type 'StandardAttributes'.
  Object literal may only specify known properties, and 'name' does not exist in type 'StandardAttributes'.

32         name: {
           ~~~~~~~
33           required: true,
   ~~~~~~~~~~~~~~~~~~~~~~~~~
34           mutable: true,
   ~~~~~~~~~~~~~~~~~~~~~~~~
35         },
   ~~~~~~~~~

CDK CLI Version

1.129.0

Framework Version

No response

Node.js Version

v17.0.1

OS

MacOS

Language

Typescript

Language Version

TypeScript (3.9.7)

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/aws-cognitoRelated to Amazon CognitodocumentationThis is a problem with documentation.feature-requestA feature should be added or improved.p3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions