sst / ion

❍ — a new engine for SST
https://ion.sst.dev
MIT License
1.09k stars 126 forks source link

preTokenGeneration is not documented on the ion docs. #538

Closed EduSantosBrito closed 1 week ago

EduSantosBrito commented 2 weeks ago

When you try to follow the documentation of ion, on the triggers section, there's no description of preTokenGeneration trigger. There's only a preTokenGenerationConfig token.

But when you create something like:

const preTokenGenerationConfig = new sst.aws.Function(
  'PreTokenGenerationConfig',
  {
    handler:
      './services/trigger/src/functions/cognito/index.cognitoPreTokenGeneration',
    description: 'Cognito Pre Token Generation',
    runtime: 'nodejs20.x',
  },
)

export const userPool = new sst.aws.CognitoUserPool('Cognito', {
  usernames: ['email', 'phone_number'],
  triggers: {
    preSignUp: preSignUp.arn,
    createAuthChallenge: createAuthChallenge.arn,
    defineAuthChallenge: defineAuthChallenge.arn,
    verifyAuthChallengeResponse: verifyAuthChallengeResponse.arn,
    preTokenGenerationConfig: preTokenGenerationConfig.arn,
  },
})

You will face this error:

aws:cognito/userPool:UserPool resource 'CognitoUserPool' has a problem: Expected Object Type. Expected object, got string. Examine values at 'CognitoUserPool.lambdaConfig.preTokenGenerationConfig'.

The correct trigger should be preTokenGeneration, like this:

export const userPool = new sst.aws.CognitoUserPool('Cognito', {
  usernames: ['email', 'phone_number'],
  triggers: {
    preSignUp: preSignUp.arn,
    createAuthChallenge: createAuthChallenge.arn,
    defineAuthChallenge: defineAuthChallenge.arn,
    verifyAuthChallengeResponse: verifyAuthChallengeResponse.arn,
    preTokenGeneration: preTokenGeneration.arn,
  },
})