-
Notifications
You must be signed in to change notification settings - Fork 4.5k
(@aws-cdk/aws-cognito): SettingAttribute 'fullname' is not consistent with documentation. #17361
Description
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