Skip to content

[cdk-cloudfront-authorization] user-pool-domain lambda generates invalid config #211

@elliotsegler

Description

@elliotsegler

The user-pool-domain lambda is generating invalid configuration.json which contain a busted domain name like below

{
domainName: "2b7f08a6.auth.async () => {
    if (runtimeConfig.region === void 0) {
      throw new Error("Region is missing from runtimeConfig");
    }
    const region = runtimeConfig.region;
    if (typeof region === "string") {
      return region;
    }
    return region();
  }.amazoncognito.com",
 }

I believe the faulting line is this one:

return userPool.CustomDomain ?? `${userPool.Domain}.auth.${COGNITO_CLIENT.config.region}.amazoncognito.com`;

the COGNITO_CLIENT.config.region which is a CognitoIdentityProviderClientResolvedConfig is able to return either a string, or a Provider<string>. The latter returns the promise of a string.

I'm not sure of the motivation behind using the resolved config, but seeing as we're feeding it from environment variables I suggest accessing that instead, because handling the choice of a string or a promise seems like unnecessary effort.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions